从值数组中计数不同的MongoDb

时间:2019-05-04 13:41:17

标签: javascript mongodb mongodb-query aggregation-framework pymongo

我有一系列不同的项目-

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 个答案:

答案 0 :(得分:2)

您可以使用$group聚合来计算不同计数的数量

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