有大量transaction
文档(约200万个)
每个transaction
文档都有一个source.billDate
字段:
"source.billDate" : ISODate("2018-07-23T16:02:06.797Z")
// or //
"source.billDate" : ISODate("2018-07-22T14:21:56.000Z")
你可以看到有些日期有毫秒,有些没有。
我想知道是否有方法使用MongoDB查询来查找在
transaction
日期中有毫秒的billDate
文档。如果有,怎么可能?
最佳答案
您可以在MongoDB 3.6版本中尝试以下查询
您必须先使用date
从$dateToParts
中提取毫秒,然后才能轻松地与毫秒$ne
0的文档匹配
db.collection.aggregate([
{ "$match": {
"$expr": {
"$ne": [
{ "$millisecond": {
"date": "$source.billDate",
"timezone": "America/New_York"
}},
0
]
}
}}
])
或者使用find查询
db.collection.find({
"$expr": {
"$ne": [
{ "$millisecond": {
"date": "$source.billDate",
"timezone": "America/New_York"
}},
0
]
}
})