我想统计MotherCard集合中每个电影的文档数量:
MotherCard
const list = ['Frozen 2013', 'Oblivion 2013', 'Avatar 2009']; const count = await db.MotherCard.countDocuments({ movie: { $in: list }}); console.log(count)
但它只返回第一个数组元素('Frozen 2013')的文档数。我们怎样才能把所有的清单都算进去呢?
iovurdzv1#
我认为这可以使用MongoDB的聚合管道来实现。
const list = ['Frozen 2013', 'Oblivion 2013', 'Avatar 2009']; const result = await db.MotherCard.aggregate([ { $match: { movie: { $in: list }}}, { $group: { _id: "$movie", count: { $sum: 1 }}} ]).exec(); console.log(result);
结果会是这样的:
[ { "_id" : "Frozen 2013", "count" : 10 }, { "_id" : "Oblivion 2013", "count" : 10 }, { "_id" : "Avatar 2009", "count" : 10 } ]
1条答案
按热度按时间iovurdzv1#
我认为这可以使用MongoDB的聚合管道来实现。
结果会是这样的: