我有一個集合,該集合中的每個文檔都有一個數組字段countries
。我要選擇,其中包括以下任何國家的所有文件:如何計算匹配的數組元素
China, USA, Australia
和輸出應顯示上述國家每個文檔都有數。 我使用aggregate命令如下:
db.movies.aggregate([
{
$match: { countries: { $in: ["USA", 'China', 'Australia'] } }
},
{
$project: {
countries: {$size: '$countries'}
}
}
]);
預期這是行不通的。它顯示了文件中具有上述國家/地區的所有國家/地區的數量。例如,如果某個文檔的countries
字段中有China, Japan
,我預期它會返回1(因爲只有China
位於上述國家/地區列表中),但返回2。我怎麼能在聚合命令中做到這一點?
它的偉大工程,感謝結果。 –