我有一個像這樣的mongo查詢:
db.collection_a.find(
{
Time: { $gte: new Date(beginTime), $lte: new Date(endTime) },
},
{
Value: 1,
UpperBound: 1,
LowerBound: 1,
Time: 1,
}
)
我希望專案欄位Value僅在時間在某個范圍之間時回傳。對于 find 查詢回傳的所有其他檔案,我不希望這些Value欄位包含在結果中。
有沒有辦法我可以做到這一點?
uj5u.com熱心網友回復:
也許是這樣的:
db.collection.aggregate([
{
"$project": {
Time: 1,
UpperBound: 1,
LowerBound: 1,
"Value": {
"$cond": [
{
$and: [
{
$lt: [
"$Time",
ISODate("2015-05-18T16:00:00Z")
]
},
{
$gt: [
"$Time",
ISODate("2013-05-18T16:00:00Z")
]
}
]
},
"$Value",
"$$REMOVE"
]
}
}
}
])
說明:您在專案階段為 Value 鍵/值對添加 $cond ,并根據提供的日期范圍設定相同的值,或者如果時間超出范圍,它將洗掉 Value 欄位。
操場
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/414145.html
標籤:
