如何获取今天用mongoose创建的文档数量?

时间:2016-01-04 10:03:51

标签: node.js mongodb mongoose

如何获取今天用mongoose创建的文档数量?我正在使用MEAN堆栈。我读了Mongoose Api Docs但不明白:/

2 个答案:

答案 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