mongodb 统计列表中每个电影的文档数量

bnl4lu3b  于 2023-06-22  发布在  Go
关注(0)|答案(1)|浏览(97)

我想统计MotherCard集合中每个电影的文档数量:

const list = ['Frozen 2013', 'Oblivion 2013', 'Avatar 2009'];

const count = await db.MotherCard.countDocuments({ movie: { $in: list }});  

console.log(count)

但它只返回第一个数组元素('Frozen 2013')的文档数。
我们怎样才能把所有的清单都算进去呢?

iovurdzv

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 }
]

相关问题