繁体   English   中英

如何使用 $in 并使用大于和小于在 mongodb 中查找计数?

[英]How to find count in mongodb using $in and using greater than and lesser than?

我在测试集合中有文档,如下所示:

{
    "_id" : "3233123123213123123",
    "sequence":30,
    "containIds":["fgx"]
}
{
    "_id" : "534545345345345345",
    "sequence":70,
    "containIds":["abc", "fgx"]
}
{
    "_id" : "56756676767676767",
    "sequence":160,
    "containIds":[]
}
db.getCollection('Test').find({"containIds":{$in: [ "fgx", "containIds" ]}}).count(); // result 1

and 

db.getCollection(Test').count({sequence:{ $gt :  0, $lt : 99}})//result 2

但我想将这两个查询合二为一,并且需要得到一个结果。 //结果应该是1

我需要聚合和投影吗? 如何在 mongodb 中使用$in和( $gt$lt )编写查询?

您可以尝试aggregate()方法和$facet阶段来分离查询和结果,

  • first ,您可以更改名称,输入您的匹配条件和$count以获取总记录
  • second ,您可以更改名称,输入您的匹配条件和$count以获取总记录
db.getCollection('Test').aggregate([
  {
    $facet: {
      first: [
        { $match: { "containIds": { $in: ["fgx", "containIds"] } } },
        { $count: "count" }
      ],
      second: [
        { $match: { sequence: { $gt: 0, $lt: 99 } } },
        { $count: "count" }
      ]
    }
  }
])

操场

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM