MongoDB大于numberLong问题
问题:MongoDB大于numberLong问题 我正在尝试获取集合中的所有文档,其中日期存储如下: { "_id": { "$oid": "5c500ff8df157e051961cfab" }, "date": { "$date": { "$numberLong": "1548750839931" } }, "when": "2019-1-29T8:33Z", "score": 20 } ..
·
问题:MongoDB大于numberLong问题
我正在尝试获取集合中的所有文档,其中日期存储如下:
{
"_id": {
"$oid": "5c500ff8df157e051961cfab"
},
"date": {
"$date": {
"$numberLong": "1548750839931"
}
},
"when": "2019-1-29T8:33Z",
"score": 20
}
...大于:1546300800000
我的收藏中有 2 条记录,但我没有得到任何回报?
这是我的查询:
{"date":{"$gt": 1546300800000}}
我想这与日期存储为字符串有关,但可以做到吗?
希望得到帮助,并在此先感谢:-)
解答
您的日期保存为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) }
})
更多推荐
已为社区贡献32870条内容
所有评论(0)