我想在mongo db中用$ match(where)条件编写一个查询。我没有任何选项只能在这里匹配日期。 查询在
下面db.LockContentAccess.aggregate([
{$match : {AccessDate:{$eq : new Date()}}},
{"$project" :
{ .... }
}
]);
这里的问题是我没有选择只匹配日期部分,比如sql查询(不是时间)。
请问任何人可以帮助我吗?
答案 0 :(得分:3)
类名Date
有点误导,因为它不仅代表日历日,还包括精确到毫秒的时间。因此,当您使用$eq : new Date()
查询它们时,您将只获得具有此毫秒的日期字段的文档。当您需要一整天的文档时,有三种可能的解决方法。
0:00:00.000
,将文档中的日期截断为午夜。查询日期时,请创建一个新的Date对象,该对象的时间也设置为0:00:00.000
。$gte: [todays date with time 0:00:00.000]
和$lte [todays date with time 23:59:59.999]
查询一系列日期。这是我建议你做的,因为它保留了你需要它用于其他用例的确切时间。如何更改new Date()
对象的时间取决于您使用的编程语言。