@Enjoyer

Как посчитать количество записей по запросу в MongoDB?

Добрый день!

Есть коллекция в MongoDB и в некоторых экземплярах есть искомое поле. Соответственно, в некоторых экземплярах этого поля нет. Нужно сделать запрос, чтобы появились только записи с наличием этого поля и нужно посчитать, сколько таких записей получается. Сам запрос делаю так:

db.getCollection('base').find({'Object1.Object11.String_field' : {"$exists" : true}})

Получаю нужные записи. А как посчитать их количество? Пробую добавить Count() в конце:

db.getCollection('base').find({'Object1.Object11.String_field' : {"$exists" : true}}).count()

Долго отрабатывает и результат: "Скрипт отработал успешно, но показать нечего"

Пробую ставить Count() вместе Find() - такой же результат.
  • Вопрос задан
  • 4162 просмотра
Решения вопроса 1
@bioGavs
Попробуйте найти записи и сгруппировать, что-то вроде этого
res = db.getCollection('base').aggregate([
{'$match': {'Object1.Object11.String_field': {"$exists" : true}}},
{'$group': {'_id': {'$sum': 1}}
])
count = res['_id']
А можно еще проще
https://docs.mongodb.com/manual/reference/operator...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@lega
Долго отрабатывает и результат нечего"
Измените структуру так чтобы отрабатывал быстро, по индексу, вместо "пустого значения" пишите null.
В противном случае с таким же успехом можно писать в текстовый файл и жаловаться дальше.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы