如何使用find()
条件执行{fromdt: 2016}
操作,其中fromdt
在后端是ISODate
。检查stackoverflow帖子后,我只能看到一个使用$year
聚合的选项。但基本上它使用投影,我不会得到文档中的所有字段。所以我想知道如何在没有聚合的情况下实现这一目标?基本上我想应用上面提到的过滤器并获取每个文件中包含所有字段的所有文档。
示例文档:
{
"_id" : 501.0,
"custid" : 1.0,
"fromdt" : ISODate("2016-01-23T00:00:00.000Z"),
"enddt" : ISODate("2017-01-22T00:00:00.000Z")
}
有没有更好的方法,只需将年份值过滤器作为2016年,就不必记住格式2016-01-01T00:00:00.000Z
?
注意:请不要将其标记为重复,因为我的实际问题在其他帖子中没有回答。
答案 0 :(得分:5)
您可以尝试这一点,2016-01-01至2017-01-01之间的日期
db.getCollection('TEST').find({
"fromdt": {
$gte: ISODate("2016-01-01T00:00:00.000Z"),
$lt: ISODate("2017-01-01T00:00:00.000Z"),
}
})