比方说,我有一个博客文章架构,其中包含许多键,其中之一是作者(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块。这是行不通的。如何在聚合中跳过文档。此后我也有分页。