{
"_id" : ObjectId("62622dd73905f04f59db2971"),
"array1" : [
{
"_id" : "12",
"array2" : [
{
"_id" : "123",
"answeredBy" : []
},
{
"_id" : "124",
"answeredBy" : []
}
]
}
]
}
/* 2 */
{
"_id" : ObjectId("626230e03905f04f59db29f5"),
"array1" : [
{
"_id" : "22",
"array2" : [
{
"_id" : "223", //compare this
"answeredBy" : []
},
{
"_id" : "220", // and this
"answeredBy" : []
}
]
}
]
}
我正在嘗試將 array2 零索引 _id 與一個索引 _id 進行比較
我的查詢是
db.getCollection('nestedArray').find({$expr:{$gt:['$array1.array2.0._id','$array1.array2.1._id']}})
顯示零記錄
uj5u.com熱心網友回復:
采用$arrayElemAt
db.collection.find({
$expr: {
$gt: [
{
$arrayElemAt: [ { $arrayElemAt: [ "$array1.array2._id", 0 ] }, 0 ]
},
{
$arrayElemAt: [ { $arrayElemAt: [ "$array1.array2._id", 0 ] }, 1 ]
}
]
}
})
mongoplayground
如果使用索引,情況就不同了。檢查下面的 mongoplayground。
db.collection.find({
$expr: {
$gt: [
"$array1.0.array2.0._id",
"$array1.0.array2.1._id"
]
}
})
mongoplayground
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/462447.html
標籤:mongodb
下一篇:更新多個陣列檔案中的內部陣列
