Javascript 使用mongo聚合如何获取具有计数的记录

Javascript 使用mongo聚合如何获取具有计数的记录,javascript,node.js,mongodb,mongoose,aggregation,Javascript,Node.js,Mongodb,Mongoose,Aggregation,我尝试这个代码过去24小时的记录,我得到了它,但我的要求是所有过去24小时的记录和记录总数 db.getCollection("COLLECTION_NAME").find({"createdAt":{$gt:new Date(Date.now() - 24*60*60 * 1000)}}) 一个集合中的récords总数为 db.getCollection(“myCollection”).count()如果您可以提供2,3个集合来测试此查询,那么答案会更精确。无论如何,这就是使用聚合框架的方

我尝试这个代码过去24小时的记录,我得到了它,但我的要求是所有过去24小时的记录和记录总数

db.getCollection("COLLECTION_NAME").find({"createdAt":{$gt:new Date(Date.now() - 24*60*60 * 1000)}})

一个集合中的récords总数为


db.getCollection(“myCollection”).count()

如果您可以提供2,3个集合来测试此查询,那么答案会更精确。无论如何,这就是使用
聚合
框架的方法

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}}
]
)

@Hector Martinez.count仅使用total records count,但我的预期输出过去24小时的记录以及count any建议mei需要过去24小时的记录和记录collection.find({}).toArray(función(error,docs){var count=docs.length;})的输出,或者使用游标对象,我认为它应该是collection.find().count()。显然,在find中,您可以放置查询。任何可能的写入聚合都不使用函数@George Baileyan任何可能的相同查询都只能获取计数值和创建日期您最好看看Baileyany{“$project”:{“createdAt”:1}}是否写入
{“$project”:{“createdAt”:1,count:1}
很高兴它很有用。玩得高兴