Посчитать отличный MongoDb от массива значений - PullRequest
3 голосов
/ 04 мая 2019

У меня есть массив различных предметов -

search = alluk.distinct('Object of search')

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

alluk.find({'Object of search':'Offensive weapons'}).count()

Вопрос

Можно ли выполнить циклический подсчет массивов поиска для каждого элемента по очереди?

Я пытался -

alluk.find({'Object of search':{'$in': search}}).count()

Однако я не совсем такой.

РЕШЕНИЕ -

for item in alluk.aggregate([
  { '$match': { 'Object of search': { '$in': objectofsearch }}},
  { '$group': {
    '_id': '$Object of search',
    'count': { '$sum': 1 }
  }}
]):
    print(item)

1 Ответ

2 голосов
/ 04 мая 2019

Вы можете использовать $group агрегацию для подсчета количества различных подсчетов

alluk.aggregate([
  { '$match': { 'Object of search': { '$in': search }}},
  { '$group': {
    '_id': '$Object of search',
    'count': { '$sum': 1 }
  }}
])
...