mongoDB unwind + lookup返回多个对象

时间:2017-07-12 14:49:39

标签: mongodb aggregation-framework database

我试图在MongoDB中构建一个查询,以便合并来自两个集合的数据:我有一组应用程序和一组功能,每个应用程序包含一系列功能_id我想要每个应用程序包含一系列要素对象:

app{
    name,
    description,
    [requirements_id1, requirements_id2 ... ]
    } 

feature{
    name,
    description
}
放松和查找后我想获得类似

的东西
app{
    name,
    description,
    [feature1{
        name,
        description
    },      
    feature2{
        name,
        description
    }]
}

我写了这个查询,查看mongodb文档中的$lookup example

db.app.aggregate([
   {
      $unwind: "$features"
   },
   {
      $lookup:
         {
            from: "features",
            localField: "features",
            foreignField: "_id",
            as: "features"
        }
   },
   {
      $match: { "_id": '123456789' }
   }
])

它有效但不是包含一系列特征的单个对象,而是一个包含数组的对象数组,每个数组只有一个特征,例如。

[app{
    name,
    description,
    [feature1{
        name,
        description
    }]
}

app{
    name,
    description,
    [feature2{
        name,
        description
    }]
}]

当然app对象除了要素字段外是相同的。如何摆脱获取包含多个功能的单个应用程序?

0 个答案:

没有答案