如何获取今天用mongoose创建的文档数量?我正在使用MEAN堆栈。我读了Mongoose Api Docs但不明白:/
答案 0 :(得分:1)
默认情况下没办法。
除非您将文档明确存储在MongoDB中,否则文档没有与之关联的创建日期。
换句话说,您的Mongoose架构应该有created
字段:
const blogSchema = new Schema({
created: {type: Date, default: Date.now}
});
然后搜索匹配的文档:
const now = new Date();
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
doc.find({created: {$gte: today}}).exec(callback);
答案 1 :(得分:1)
假设您的架构中有日期字段createdAt
,并且您想获得今天注册的用户数,您应该创建一个两个日期对象实例,以便在日期范围查询中使用{{1} }和start
日期。
您的end
日期对象应保持当前日期时间小时为start
(精确度为毫秒),并将今天的小时数设置为00:00:00.000
到{{1日期变量:
23:59:59.999
然后像往常一样在 end
运算符中的MongoDB聚合管道中传递修改后的日期对象:
var start = new Date();
start.setHours(0,0,0,0);
var end = new Date();
end.setHours(23,59,59,999);
如果您使用的是momentjs库,可以使用当前日期对象上的startOf()
和endOf()
方法完成此操作,并传递字符串{{ 1}}作为参数:
$match