Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB Compass:如何执行SQL连接/Mongoose填充?_Mongodb - Fatal编程技术网

MongoDB Compass:如何执行SQL连接/Mongoose填充?

MongoDB Compass:如何执行SQL连接/Mongoose填充?,mongodb,Mongodb,我有一个名为Post的集合,它有一个名为makeupProduct的ID字段。此ID字段是myMakeupProduct集合的外键 在MongoDB Compass中,我试图找到所有的帖子 其中productUrl==null和 随它一起填充化妆记录 这可能吗 我有第一个过滤器,但不知道如何写其余的 db.Post.aggregate([ { $match:{ productUrl:null } }, { $lookup: { 来自:“MakeupProduct”, localField:“ma

我有一个名为
Post
的集合,它有一个名为
makeupProduct
的ID字段。此ID字段是my
MakeupProduct
集合的外键

在MongoDB Compass中,我试图找到所有的帖子

  • 其中
    productUrl==null
  • 随它一起填充化妆记录
  • 这可能吗

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

    db.Post.aggregate([
    {
    $match:{
    productUrl:null
    }
    },
    {
    $lookup:
    {
    来自:“MakeupProduct”,
    localField:“makeupProduct”,
    foreignField:“\u id”,
    as:“makeupProduct”
    }
    },
    {
    $set:{
    makeupProduct:{
    $arrayElemAt:[“$makeupProduct”,0]
    }
    }
    }
    ])
    
    您可以使用聚合(Compass中的聚合选项卡)使用聚合管道阶段在相关集合之间进行连接。在Compass中,您将能够查询,并且您可能需要进行额外的处理以更新数据。这是否回答了您的问题,您可以查看有关如何使用MongoDB本机的
    $lookup
    运算符的链接。但是,如果您使用Node.Js代码中的mongoose驱动程序,您可以使用
    .populate()
    来完成类似的工作。尝试使用robo3T,它可以免费使用+更好,给你一种外壳般的感觉。