首页 > 解决方案 > 单个 mongo 查询中的多个计数查询

问题描述

我需要同时对具有 3 个不同条件的同一个集合执行多个计数查询。

Date <= x
Date <= y
Date <= z 

现在,我这样做:

collection.count(query1, function() {
   collection.count(query2, function() {
     collection.count(query3, function() {

有没有办法可以在单个 mongodb 查询中完成所有 3 个查询。

标签: mongodbmongodb-queryaggregation-framework

解决方案


在 mongo 3.4 版本中使用 facet:

db.col.aggregate(
{"$facet":{
  "count1":[{"$match":query1},{"$count":"count"}],
  "count2":[{"$match":query2},{"$count":"count"}],
  "count3":[{"$match":query3},{"$count":"count"}]
}})

推荐阅读