使用 mongo 聚合如何获取带计数的记录
using mongo aggregation how to get records with count
我正在尝试使用此代码获取过去 24 小时的记录,但我的要求是所有过去 24 小时的记录和记录总数
db.getCollection("COLLECTION_NAME").find({"createdAt":{$gt:new Date(Date.now() - 24*60*60 * 1000)}})
一个集合中的总记录数是
db.getCollection("myCollection").count()
如果您可以提供 2,3 个集合来测试此查询,答案会更准确。无论如何,这就是您使用 aggregation
框架的方式。
db.collection.aggregate(
[
{$match : {"createdAt":{$gt:new Date(Date.now() - 24*60*60 * 1000)}}},
{ "$group": {
"_id": null,
"data": { "$push": "$$ROOT" },
"count": { "$sum": 1 }
}},
{ "$unwind": "$data" },
{ "$project ": {"_id" : 0}}
]
)
我正在尝试使用此代码获取过去 24 小时的记录,但我的要求是所有过去 24 小时的记录和记录总数
db.getCollection("COLLECTION_NAME").find({"createdAt":{$gt:new Date(Date.now() - 24*60*60 * 1000)}})
一个集合中的总记录数是
db.getCollection("myCollection").count()
如果您可以提供 2,3 个集合来测试此查询,答案会更准确。无论如何,这就是您使用 aggregation
框架的方式。
db.collection.aggregate(
[
{$match : {"createdAt":{$gt:new Date(Date.now() - 24*60*60 * 1000)}}},
{ "$group": {
"_id": null,
"data": { "$push": "$$ROOT" },
"count": { "$sum": 1 }
}},
{ "$unwind": "$data" },
{ "$project ": {"_id" : 0}}
]
)