我正在尝试将所有文档收集到其中的日期存储如下:
{
"_id": {
"$oid": "5c500ff8df157e051961cfab"
},
"date": {
"$date": {
"$numberLong": "1548750839931"
}
},
"when": "2019-1-29T8:33Z",
"score": 20
}
...大于此:1546300800000
我的收藏集中有2条记录,但没有任何回报?
这是我的查询:
{"date":{"$gt": 1546300800000}}
我想这与日期存储为字符串有关,但是可以吗?
希望获得帮助,并在此先感谢:-)
答案 0 :(得分:3)
您的日期另存为Date
类型,并且您正在使用时间戳来查找文档。
因此,您可以先使用$toLong
聚合运算符将date
转换为时间戳,然后再使用$gt
运算符
如果您使用的是mongodb 4.0
db.collection.find({
"$expr": {
"$gt": [{ "$toLong": "$date" }, 1546300800000]
}
})
如果您使用的是mongodb 3.6
db.collection.find({
"$expr": {
"$gt": [
{ "$subtract": ["$date", new Date("1970-01-01")] },
1546300800000
]
}
})
或者您可以简单地将timestamp
转换为键入date
db.collection.find({
"date": { "$gt": new Date(1546300800000) }
})