How to flatten a subdocument into root level in MongoDB?

后端 未结 6 1008
一个人的身影
一个人的身影 2020-12-01 13:53

For example, if I have a document like this

{
  a: 1,
  subdoc: {
          b: 2,
          c: 3
          }
}

How can I convert it into a

6条回答
  •  忘掉有多难
    2020-12-01 14:18

    You can use MongoDB projection i.e $project aggregation framework pipeline operators as well. (recommended way). If you don't want to use project check this link

    db.collection.aggregation([{$project{ . . }}]);

    Below is the example for your case:

    db.collectionName.aggregate
    ([
        { $project: { a: 1, 'b': '$subdoc.b', 'c': '$subdoc.c'} }
    ]);
    

    Gives you the output as you expected i.e.

        {
            "a" : 1,
            "b" : 2,
            "c" : 3
        }
    

提交回复
热议问题