如何限制 MongoDB 中显示的嵌套文档数

How to limit the number of nested documents shown in MongoDB

我的父文档数组包含 20 到 500 个嵌套文档。如何限制每个父文档显示的嵌套文档的数量。

下面是我的文档和嵌套文档的结构。

[{
        id
        title
        users: [{
                user_id: 1,
                timestamp: 2354218,
                field3: 4
            }, {
                user_id: 1,
                timestamp: 2354218,
                field3: 4
            }, {
                user_id: 1,
                timestamp: 2354218,
                field3: 4
            },
            ...
        ]

    }, {

    },
    ...
]

我想限制每个父文档显示的用户数。怎么样?

我的查询

db.movies.aggregate(
[{$match: {
    "movie_title":  "Toy Story (1995)"}
  },{
    $lookup: {
        from: "users",
        localField: "users.user_id",
        foreignField: "users.id",
        as: "users"
    }
},
{$project: {

        movie_title: "$movie_title",
        users: { $slice: [ "$users", 1 ] }
    }}
]);

您可以试试下面的查询。使用 $slice 最多获取每个文档的嵌套文档数组中的前 n 个元素。

db.collection.aggregate([{ $project: { title: 1, nUsers: { $slice: [ "$users", n ] } } ])

或使用常规查询。

db.collection.find({}, { title: 1, nUsers: {$slice: n } })