我有一个集合Plans
。我想找到一个月内的所有东西。以下是数据外观的示例:
{
"_id": "someid",
"dateStart": ISODate("2015-03-01T00:00:00Z"),
"dateEnd": ISODate("2015-03-31T00:00:00Z"),
"items": [
"someotherid"
]
}
如何找到Plan
,使今天的日期介于dateStart
和dateEnd
之间?
答案 0 :(得分:2)
date1 = new Date('3/1/15');
date2 = new Date('4/1/15');
Plans.find({
startDate: {$gte: date1},
endDate: {$lt: date2}
});
新Date
个对象初始化为00:00:000
,因此您可以在此处使用它。另请注意,"少于4/1"相当于"小于或等于3/31" - 但前者更容易写。
另请注意,moment是一个非常方便的实用程序,用于执行此类操作。例如:moment().endOf('month').toDate()
要添加包,请执行以下操作:
$ meteor add momentjs:moment
答案 1 :(得分:2)
要查找计划,使今天的日期在dateStart
和dateEnd
字段之间,请创建一个包含当前日期的日期对象,然后使用$lt
和$gt
查询日期字段上的运算符,以查询今天的日期介于两个字段之间的文档:
currentDate = new Date();
Plans.find({
dateStart: { $lt: currentDate },
dateEnd: { $gt: currentDate }
});