Я не могу нигде найти, что происходит, когда мы ограничиваем количество элементов до N
, а фактические документы, представленные в соответствии с фильтром, равны k
, где k>N
. Мой здравый смысл подсказывает, что разработчики позаботились об этом через minimum (N,actual_found)
, но я не смог найти решения.
У меня есть запрос в pymongo
, где я хочу найти количество документов в соответствии с фильтр. У меня есть примерно такой запрос:
query = [{"$match": {"$expr": {"$and": [{"$lte": [{"$strLenCP": {"$ifNull": ["$eng_text",""]}},0]},
{"$lte": [{"$strLenCP": {"$ifNull": ["$hindi_text",""]}},0]},
{"$lte": [{"$strLenCP": {"$ifNull": ["$latex",""]}},0]}]}}},
{"$limit": 1000000}]
objs = db.questions.aggregate(query)
Проблема в том, что когда я запускал
count=0
for obj in objs:
count+=1
print(count)
>>>
320953
, он дал мне результаты, но на это ушло много времени go на сервер для получения каждого запроса, а затем al oop.
Есть ли какой-нибудь метод, по которому я могу найти количество результатов?
Я пробовал db.questions.count_documents(query)
и db.documents.count_documents({query})
и он вернул мне ошибку. Может быть, потому что это агрегат или по какой-то другой причине. Я не специалист по БД, но просто хочу увидеть лог c для получения данных. Я думаю, что могу изменить форму запроса, а затем использовать count_documents()
. Может кто-нибудь подскажет, как это сделать?