首页 > 解决方案 > MongoDB Compass:如何执行 SQL 连接/Mongoose 填充?

问题描述

我有一个名为 的集合Post,其中有一个名为 的 ID 字段makeupProductMakeupProduct这个 ID 字段是我收藏的外键。

在 MongoDB Compass 中,我正在尝试查找所有帖子

  1. 在哪里productUrl === null
  2. 与它一起填充化妆记录

这可能吗?

我有第一个过滤器,但不知道如何写其余的。

在此处输入图像描述

标签: mongodb

解决方案


db.Post.aggregate([
    {
        $match: {
            productUrl: null
        }
    },
    {
        $lookup: 
        {
            from: "MakeupProduct",
            localField: "makeupProduct",
            foreignField: "_id",
            as: "makeupProduct"
        }
    },
    {
        $set: {
            makeupProduct: {
                $arrayElemAt: ["$makeupProduct", 0]
            }
        }
    }
])

推荐阅读