问题描述
有大量的transaction
文档(〜2M)
There is a large collection of transaction
documents (~2M)
每个transaction
文档都有一个source.billDate
字段:
Each transaction
document has a source.billDate
field:
"source.billDate" : ISODate("2018-07-23T16:02:06.797Z")
// or //
"source.billDate" : ISODate("2018-07-22T14:21:56.000Z")
您会看到一些日期以毫秒为单位,而有些则没有毫秒.
我想知道是否有一种方法可以使用MongoDB查询来查找在billDate
日期中具有毫秒数的transaction
文档.
I'm wondering if there is a way to use MongoDB query to find transaction
documents that have milliseconds in their billDate
date.
有可能吗?
推荐答案
您可以在mongodb 3.6 版本中尝试以下查询
You can try below queries in mongodb 3.6 version
您必须首先使用 从date
中提取毫秒> $dateToParts
,然后您可以轻松地将具有毫秒 $ne
0
You have to first extract millisecond from your date
using $dateToParts
and then you can easily match with the documents having millisecond $ne
0
db.collection.aggregate([
{ "$match": {
"$expr": {
"$ne": [
{ "$millisecond": {
"date": "$source.billDate",
"timezone": "America/New_York"
}},
0
]
}
}}
])
或者也可以使用查找查询
Or with find query as well
db.collection.find({
"$expr": {
"$ne": [
{ "$millisecond": {
"date": "$source.billDate",
"timezone": "America/New_York"
}},
0
]
}
})
这篇关于查询以找到所有非零毫秒的文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!