mongodb - 单个 mongo 查询中的多个计数查询
问题描述
我需要同时对具有 3 个不同条件的同一个集合执行多个计数查询。
Date <= x
Date <= y
Date <= z
现在,我这样做:
collection.count(query1, function() {
collection.count(query2, function() {
collection.count(query3, function() {
有没有办法可以在单个 mongodb 查询中完成所有 3 个查询。
解决方案
在 mongo 3.4 版本中使用 facet:
db.col.aggregate(
{"$facet":{
"count1":[{"$match":query1},{"$count":"count"}],
"count2":[{"$match":query2},{"$count":"count"}],
"count3":[{"$match":query3},{"$count":"count"}]
}})
推荐阅读
- javascript - 捕获具有重叠图像的网络摄像头流
- python-3.x - PuLP目标函数中ABS()的数学运算
- ajax - 为什么我的 AJAX 调用在 github 页面中失败?
- c# - 来自旧版 dotnet 框架 4.7.1 应用程序的 Core Api 的 ConfigurationBuilder
- javers - 包含数组列表的两个对象的比较
- angular - Angular 8,上传(使用 post multipart/form-data)FileReader.readAsDataURL 的结果
- swift - 如何在 Swift 中实现泛型约束?
- ios - 为多次调用swift 5更新集合视图数据源的正确方法
- php - 发送邮件或多个电子邮件地址
- r - 为什么当我在 geom_bar 中为“x”和“填充”美学使用相同的变量时它不起作用?