MongoDB - 组合多个命令来发送和返回一个请求

时间:2013-08-28 15:15:47

标签: php javascript mongodb

我目前正在PHP和Javascript中使用MongoDB。我想要做的是将以下MongoDB命令合并到一个请求中,然后将其作为一个请求返回,以避免我在Javascript的AJAX中出现的一些错误。我该怎么办呢?命令示例(以Mongo形式)我想在下面添加一个命令。任何帮助表示赞赏!

db.colcName.find({"location": "London"})
db.colcName.count({"provider": "provider1"})
db.colcName.count({"provider": "provider2"})
db.colcName.count({"provider": "provider3"})
db.colcName.count({"provider": "provider4"})

1 个答案:

答案 0 :(得分:2)

使用MongoDB的aggregation framework

要在单个操作中计算示例中的计数,请使用:

db.colcName.aggregate([
   {"$match":{"location":"London"}},
   {"$group":{"_id":"$provider",
              "count":{"$sum":1}}}]);

此聚合管道首先仅选择“location”等于“London”的记录,然后按“提供者”字段对这些记录进行分组(请注意字段名称前面的$符号)。对于每个组,它计算计数(记录数)。