【发布时间】:2017-10-21 04:54:20
【问题描述】:
我有一个集合,该集合中的每个文档都有一个数组字段countries。我想选择包含以下任何国家的所有文件:
China, USA, Australia
并且输出应该显示每个文档具有的上述国家的数量。 我使用以下聚合命令:
db.movies.aggregate([
{
$match: { countries: { $in: ["USA", 'China', 'Australia'] } }
},
{
$project: {
countries: {$size: '$countries'}
}
}
]);
它没有按预期工作。它显示文档中具有上述国家/地区的所有国家/地区的数量。例如,如果一个文档在其countries 字段中有China, Japan,我希望它返回1(因为只有China 在上面的国家列表中)但它返回两个。如何在聚合命令中做到这一点?
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework