我正在嘗試比較嵌套陣列中第一個和最后一個元素之間的價格。
以下是我的部分資料:
priceRange:[
[1600732800000,5.28424438726287],
[1600819200000,5.08434522342211],
[1600905600000,3.491229168216385],
[1600992000000,4.573890580327729],
[1601078400000,4.702973876095848]
]
所以本質上我想知道第一個陣列中的第二個元素(5.28424438726287)是否大于最后一個陣列中的第二個元素(4.702973876095848)
我很難選擇嵌套陣列中的最后一個陣列:以下不起作用:
$expr: { $gt: [{ $last: "$priceRange" }, 0.000001] }
我可以選擇第一個元素:
priceRange.0.1
然后是一個問題,你如何比較它們,同時還有其他過濾器約束?
{name: "Some stock", comparing the prices}
uj5u.com熱心網友回復:
您可以添加此聚合階段:
此查詢創建一個名為isBiggerwhere 比較所需值的欄位:
- 第一個陣列的最后一個(第二個)值
- 最后一個陣列的最后一個(第二個)值
并且輸出將是true或false是否更大。
db.collection.aggregate([
{
"$project": {
"isBigger": {
"$cond": {
"if": {
"$gt": [
{
"$last": {
"$first": "$priceRange"
}
},
{
"$last": {
"$last": "$priceRange"
}
}
]
},
"then": true,
"else": false
}
}
}
}
])
這里的例子
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422865.html
標籤:
