Вам нужно проецировать свои данные ( https://docs.mongodb.com/manual/reference/operator/projection/positional/ )
Попробуйте это:
db.crashes.find({}, {"app_id": 1, "title": 1, "os": 1})
Если вы хотите получить элемент массива с последним значением updatedAt
, это возможный конвейер:
db.crashes.aggregate([
{$unwind: '$crash'},
{$sort: {'crash.crash_reason.updatedAt': -1}},
{$group: {
_id: "$app_id",
title: {$first: "$title"},
os: {$first: "$os"},
crash: {$first: "$crash"}
}}
])
Это будет $unwind
массив сбоев (т. е. он создаст документ для каждого элемента массива crash), затем он отсортирует все документы по дате updatedAt
(последняя первая). Наконец, он сгруппирует все документы с помощью app_id
и возьмет первое значение crash
, которое будет последним благодаря предыдущему этапу $sort
.
Если вы хотите еще больше сократить свои данные вы можете добавить этап $project
в конвейере агрегации до или после этапа $group
(например, вы могли бы вырезать все нерелевантные данные на первом этапе для повышения производительности).
Взгляните на документацию для лучшего объяснения ( https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/ )
Посмотрите здесь . Вам нужно захватить координаты мыши и затем использовать cv.line
def click_and_crop(event, x, y, flags, param):
# grab references to the global variables
global refPt, cropping
# if the left mouse button was clicked, record the starting
# (x, y) coordinates and indicate that cropping is being
# performed
if event == cv2.EVENT_LBUTTONDOWN:
refPt = [(x, y)]
cropping = True
# check to see if the left mouse button was released
elif event == cv2.EVENT_LBUTTONUP:
# record the ending (x, y) coordinates and indicate that
# the cropping operation is finished
# y = height x = width
refPt.append((x, y))
cropping = False
# draw a rectangle around the region of interest
#cv.line(input_frame, (0, int(height/2)), (int (width), int(height/2)), (0, 0xFF, 0), 5)
cv2.line(image,(0, int(y)), (int(width), int(y)), (0, 255, 0), 2)
cv2.imshow("image", image)
.