我有一个mongo集合,看起来像这样:
{
title: String,
category: String
}
我想编写一个选择各种类别的查询,类似于:
Collection.find({category: {$in: ['Books', 'Cars', 'People']});
但我想只选择每个类别的有限数量,例如每本书中有5个,汽车,人。我该如何写这样的查询?我可以进行一次查询,还是必须使用多个查询?
答案 0 :(得分:2)
你可以使用mongodb aggregation来做到这一点。看看这个管道:
尝试以下查询:
db.collection.aggregate([
{$match: {category: {$in: ['Books', 'Cars', 'People']}}},
{$group: {_id: "$category", titles: {$push: "$title"}}},
{$project: {titles: {$slice: ["$titles", 5]}}}
])