Как узнать количество документов в mongodb с помощью агрегирования pymongo? - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь найти максимальное значение поля из ряда документов и хочу, чтобы выходные данные отражали не только максимальное значение поля, но и общее количество документов, которые будет извлекать агрегированный запрос.

Я могу получить поле «ожидания» с максимальным значением, которое мне нужно, с помощью приведенного ниже запроса, но я застрял с тем, как получить количество всех документов, которые удовлетворяют приведенному ниже запросу (поле «Соответствие»).

    db = mongo_client[_MONGO_COLLECTION]
    cursor = db.aggregate(
        [
            {"$match": { "owner": { "$exists": False}}},
               {
                "$project": {   
                                "wait" : {
                                                "$divide": [{"$subtract": [datetime.now(), "$creationDate"]}, 1000],

                                            }
                            }
            },                        
               {
                "$sort" : {

                                  "wait": -1
                                                }
                 }, {"$limit" : 1}

    ])
    for x in cursor:
        print(x)

1 Ответ

0 голосов
/ 06 октября 2019

Вы можете использовать count метод, как показано ниже:

print(cursor.count())
print(list(cursor))

или Вы можете добавить $count конвейер, как показано ниже:

{
    "$count":"count" // the name of count filed
}
...