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

Mur*_*dia 2 document nested 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
            },
            ...
        ]

    }, {

    },
    ...
]
Run Code Online (Sandbox Code Playgroud)

我想限制每个父文档显示的用户数量。如何?

我的查询

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 ] }
    }}
]);
Run Code Online (Sandbox Code Playgroud)

use*_*814 8

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

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

或使用常规查询。

db.collection.find({}, { title: 1, nUsers: {$slice: n } })
Run Code Online (Sandbox Code Playgroud)