基於this問題...
我試圖讓一個聚合函數和篩選基於子陣值我的數組。目前我的陣列結構如下:
'id':1,
'data': {
'value':1
}
'id':2,
'data': {
'value':1
}
'id':3,
'data': {
'value':2
}
所以我需要讓所有的物品,其中data.value爲1。目前爲了做到這一點我必須做到以下幾點:
db.ids.aggregate([
{$match:{id:{$exists:true}}}, //some more matching conditions here...
{$unwind:'$data'},
{$match:{'data.value':1}}//need to get rid of this and move it to the first $match
所以問題是我可以擺脫第二個$匹配,並將我的子數組過濾條件放入第一個匹配中?我試圖做到這一點,但它沒有奏效,並返回了整個文檔。我真的需要根據子數組值過濾我的數組,因爲我的數據庫會變得非常大,我不希望$放鬆整個文檔。 謝謝。
請問您可以添加一個整個文檔的例子,因爲它目前不清楚(至少不是我)你的文檔是怎麼樣的 - 我目前不確定你顯示的數據應該代表3個文檔還是一個文檔包含這3個子文檔的嵌套數組。 – DAXaholic