[英]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.