MongoDB -返回与查询匹配的文档和计数



我试图从mongo查询返回匹配文档以及匹配文档的数量。有办法做到这一点与一个查询?

我目前用来返回文档的代码如下所示,我需要返回员工在集合中出现的所有时间以及文档本身:

db.collection.find({employeeNumber: employeeNumber})

我知道要返回计数应该这样做:

db.collection.countDocuments({employeeNumber: employeeNumber})

任何帮助将不胜感激,因为我的蒙古知识是相当基本的。

您可以尝试使用$facet进行聚合查询,以获得类似于

的输出:
{
"documents": [/*your documents matched*/],
"count": X
}

所以你可以这样做:

  • 第一个$match得到期望的结果。
  • 然后$facet创建两个输出,一个是匹配本身,另一个是使用$count的文档数量。
  • 最后两步是格式化结果和输出格式。
db.collection.aggregate([
{
"$match": {
"employeeNumber": 1
}
},
{
"$facet": {
"documents": [],
"count": [{"$count": "count"}]
}
},
{
"$set": {
"count": {"$arrayElemAt": ["$count",0]}
}
},
{
"$project": {
"documents": 1,
"count": "$count.count"
}
}
])

例子

相关内容

  • 没有找到相关文章

最新更新