如何基于mongodb聚合中的条件跳过文档

时间:2018-11-23 16:21:28

标签: node.js mongodb mongoose mongodb-query aggregation-framework

比方说,我有一个博客文章架构,其中包含许多键,其中之一是作者(ObjectId)。现在,我有另一个阻止用户集合,其中包含两个键:userid(ObjectId)和userWhoHasBeenBlocked(ObjectId)。

现在,在聚合中,我想跳过那些作者等于userWhoHasBeenBlocked的集合。 我的申请方法:第一层,我有一个匹配查询,可查询发布该帖子的国家/地区。假设有一个国家的钥匙。

此后,我有一个用于阻止用户收集的$ lookup查询,

   { $match: { country: "usa" } },
            {
                $lookup:
                {
                    from: "ublocks",
                    let: { whoHasBeenBlocked: "$author", currentUser: userid },
                    pipeline: [
                        {
                            $match:
                            {
                                $expr:
                                {
                                    $and:
                                        [

                                            { $eq: ["$blockedUser", "$$whoHasBeenBlocked"] },

                                        ]
                                }
                            }
                        },
                    ],
                    as: "isBlocked"
                },
            }
},
 { $match: { "$author": { $ne: "$isBlocked.userId" } } }
}

在此之后,我有$ projection块。这是行不通的。如何在聚合中跳过文档。此后我也有分页。

0 个答案:

没有答案