如何使用moongose限制类别中的结果

时间:2018-05-24 10:31:10

标签: mongodb

我在mongodb中有一个集合,该集合有一个字段displayInCategories。该集合包含1000个不同displayInCategories的数据。 对于所有可用的displayInCategories,是否可以将记录限制为< = 5。 我不想限制整个结果的记录,我需要根据displayInCategories限制记录

1 个答案:

答案 0 :(得分:0)

这可能会让你:

db.collection.aggregate([{
    $group: {
        _id: "$displayInCategories", // group by displayInCategories
        "docs": { $push: "$$ROOT" } // remember all documents for this category
    }
}, {
    $project: {
        "docs": { $slice: [ "$docs", 5 ] } // limit the items in each "docs" array to 5
    }
}])

您可能希望在开始时应用$sort阶段,以确保您不会获得随机文档,而是根据某些条件获得“前5名”。