代码之家  ›  专栏  ›  技术社区  ›  user9009353

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

  •  1
  • user9009353  · 技术社区  · 6 年前

    假设我有一个博客文章的模式,其中包含许多键,其中一个键是author(ObjectId)。现在我有了另一个块用户集合,其中包含两个键:userid(ObjectId)和userwhohasbeenblock(ObjectId)。

    我的方法:第一级,我有一个匹配查询,它可以查询发帖的国家。假设有一把国家的钥匙。

       { $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 回复  |  直到 6 年前