一大堆transaction
文档(〜2M)
每个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
文档。
有可能吗?
答案 0 :(得分:4)
您可以在mongodb 3.6 版本中尝试以下查询
您必须先使用$dateToParts
从date
中提取毫秒,然后才能轻松匹配具有毫秒$ne
0的文档
db.collection.aggregate([
{ "$match": {
"$expr": {
"$ne": [
{ "$millisecond": {
"date": "$source.billDate",
"timezone": "America/New_York"
}},
0
]
}
}}
])
或者也可以使用查找查询
db.collection.find({
"$expr": {
"$ne": [
{ "$millisecond": {
"date": "$source.billDate",
"timezone": "America/New_York"
}},
0
]
}
})