我有一个集合,该集合中的每个文档都有一个数组字段countries
。我要选择,其中包括以下任何国家的所有文件:如何计算匹配的数组元素
China, USA, Australia
和输出应显示上述国家每个文档都有数。 我使用aggregate命令如下:
db.movies.aggregate([
{
$match: { countries: { $in: ["USA", 'China', 'Australia'] } }
},
{
$project: {
countries: {$size: '$countries'}
}
}
]);
预期这是行不通的。它显示了文件中具有上述国家/地区的所有国家/地区的数量。例如,如果某个文档的countries
字段中有China, Japan
,我预期它会返回1(因为只有China
位于上述国家/地区列表中),但返回2。我怎么能在聚合命令中做到这一点?
它的伟大工程,感谢结果。 –