$replaceRoot in mongodb

。_饼干妹妹 提交于 2020-06-23 07:44:32

问题


I use aggregation framework for group by of multiple fields as

{
_id:{_id:"$_id",feature_type:"$feature_type",feature_name:"$feature_name"},
features: { $push: "$features" }
}

it give result like

{_id:
     {_id:1,feature_type:"Test",feature_name:"Tests"},
  features:["23423","32423","2342342"]
}

but I want result like

{_id:1,feature_type:"Test",feature_name:"Tests",
  features:["23423","32423","2342342"]
}

how can i acheve this using aggregration framework.


回答1:


You need to use $replaceRoot to change your root document

db.collection.aggregate([
  {
    "$addFields": {
      "_id.features": "$features"
    }
  },
  {
    "$replaceRoot": {
      "newRoot": "$_id"
    }
  }
])



回答2:


db.collection.aggregate([
  {      
      $project: {
                _id: "$_id._id",
                feature_type:"$_id.feature_type",
                feature_name:"$_id.feature_name",
                features:1
                }
  }
])


来源:https://stackoverflow.com/questions/51298993/replaceroot-in-mongodb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!