想象一個陣列進入聚合管道的一個步驟,如下所示:
[{
name: "John",
address: { zip: 1111 }
},{
name: "Doe",
address: { zip: 2222 }
}]
那么,現在如果我想過濾 address.zip: 2222 的所有物件,聚合階段會是什么樣子?我對檔案有點困惑,因為它只顯示了在子陣列中實作$filter以過濾子陣列本身中的專案的方法。
我知道如果我只使用 find() 函式就可以實作這一點,但這里的問題是前一個階段,事物是動態生成的,所以我需要找到一種方法來在聚合本身中過濾它。
非常感謝有關此問題的任何幫助。謝謝!
uj5u.com熱心網友回復:
$match ?
db.collection.aggregate([
{
"$match": {
address: {
zip: 2222
}
}
}
])
mongoplayground
uj5u.com熱心網友回復:
將是
db.collection.aggregate([
{
"$match": {
"address.zip": 2222
}
}
])
$filter 用于從陣列中洗掉元素,例如
{ $filter: { input: [ 1,2,3,4,5,6 ], cond: {$lt: ["$$this", 4] } } } => [1,2,3]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/340242.html
