MongoDB展开数组结果操作

时间:2017-05-04 19:12:42

标签: mongodb aggregation-framework

我有以下MongoDB查询:

返回两个集合的一些行,一吨有362个网络代码,然后我"加入"这两个集合在一个新数组中,其中包含第二个信息,这些数组我提取了" group"。

     db.events.aggregate([

       { $match : { netcode : "N000362" } },

        {
          $lookup:
            {
              from: "nodes",
              localField: "name",
          foreignField: "name",
          as: "event_joined"


        }

   },


  { $unwind:  {path: "$event_joined"}},


  { $project : { name : 1, event : 1, "event_joined.group": 1 ,_id:0} },







])

它返回以下结果(还有更多行):

/* 1 */
{
    "name" : "GFS_3MSTAFE_RT01",
    "event" : "Proactive Interface Output Utilisation",
    "event_joined" : {
        "group" : "GFS-SUCURSALES"
    }
}

/* 2 */
{
    "name" : "GFS_3MSTAFE_RT01",
    "event" : "Proactive Interface Output Utilisation",
    "event_joined" : {
        "group" : "GFS-SUCURSALES"
    }
}

我想要的是什么:

   /* 1 */
{
    "name" : "GFS_3MSTAFE_RT01",
    "event" : "Proactive Interface Output Utilisation",
    "group" : "GFS-SUCURSALES"

}

/* 2 */
{
    "name" : "GFS_3MSTAFE_RT01",
    "event" : "Proactive Interface Output Utilisation",  
    "group" : "GFS-SUCURSALES"

}

有办法做到这一点吗?

我尝试了另一个放松,但没有。

1 个答案:

答案 0 :(得分:0)

使用computed fields投影嵌入式文档中的值。

{ $project : { name : 1, event : 1, group:"$event_joined.group", _id:0 } }