如何在 mongodb 中将一个集合的主 ID 设置为另一个集合的辅助 ID



我正在构建一个博客网站(在前面使用角度,在后面使用节点和mongoDB(,我想在其中显示与其特定类别相对应的博客。

我有 3 个不同的博客类别。我创建了两个集合:一个用于类别,另一个用于博客。在博客集合中,我想使用一个名为 c_id 的字段,该字段应等于类别集合的 id。因此,当我单击特定类别时,它仅显示该类别的博客。

在博客集合架构中,您可以将字段定义为c_id或 categoryId,如下所示:

var BlogSchema = new Schema({
        _id: {
            type: Schema.Types.ObjectId,
            required: true,
            auto: true,
        },
        blogTitle: {
           type: String
        },
        anyField: {
            type: String
        },
        categoryId: {
            type: Schema.Types.ObjectId,
            ref:"categories",              // Name of your category collection
            required: true,
        },
});

要获取所有博客以及类别名称,您可以尝试按如下方式查询:

db.collection.aggregate([
    {
       $lookup: {
            from: "categories",             // Name of the foreign collection
            let: { "cId": "$categoryId" },  
            pipeline:[
                { 
                  $match: { 
                       $expr: { 
                          $eq: ["$_id", "$$cId"] 
                       } 
                  } 
                },
                {
                   $project: {
                       categoryName: 1
                   }
                }  
            ],
           as: "categoryInfo"
       }
    }
])

相关内容

  • 没有找到相关文章

最新更新