我的文档有一个日期类型如下的字段。
{
"_id" : ObjectId("568bae0fcfe23a50879d45fc"),
"data": {
"createdDate" : ISODate("2015-12-17T22:25:24.973+0000")
}
}
如何获取 data.createdDate < = todayDate和 data.createdDate > = todayDate-20days的所有文档。
我尝试使用以下查询,这工作正常。
db.myTable.aggregate([
{$match: {"data.createdDate": {$lte: new Date(), $gte: new Date(new Date().setDate(new Date().getDate()-20))}}}
])
但此查询也考虑时间。我只想比较日期。
答案 0 :(得分:2)
如果你想比较日期,你应该将createdDate设置为小时,分钟,秒和毫秒,然后再存储到数据库中。
如果你在db中有这样的日期,请尝试以下查询
db.collection.aggregate([
{$match: {"data.createdDate": {$lte: new Date().setHours(0,0,0,0), $gte: new Date(new Date().setDate(new Date().getDate()-20)).setHours(0,0,0,0)}}}
])