我有一組格式如下的檔案:
{
_id: ObjectId('617d318eb863ee273c66b111'),
my_object: {
_id: ObjectId('617d318eb863ee273c66b222')
//other fields
},
exclusion_object: {
my_arr: ObjectId('617d318eb863ee273c66b222')
//other fields
}
}
所以我需要排除my_object._id包含在exclusion_object.my_arr
我試過(在$match階段):
{
$match:{
'exclusion_object.my_arr': { $nin:['my_object._id','$exclusion_object.my_arr']}
}
}
這似乎不起作用..有什么建議嗎?
uj5u.com熱心網友回復:
詢問
$in查詢運算子需要值,所以我們不能使用它$fieldName
{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }$in聚合運算子也接受運算式,因此我們可以將它與$fieldName
{ $in: [ <expression>, <array expression> ] }$match$expr還需要在運算符上使用聚合運算子時
測驗代碼在這里
aggregate(
[{"$match":
{"$expr":
{"$not": [{"$in": ["$my_object._id", "$exclusion_object.my_arr"]}]}}}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/369056.html
