MongoDB:从对象数组创建数组

时间:2018-03-27 18:19:01

标签: arrays mongodb aggregation-framework

我有一个问题,我已经用$ unwind和$ group解决了,但我真的很感兴趣是否有可能用$ reduce解决。 目前正在使用MongoDb 3.4

这是输入:

{
 "myArray": [
   {"foo":"x",
    "bar":"y",
     "important": {
           "imp_1": "a",
           "imp_2": "b"
      } 
    },
    {
    "foo":"x",
    "bar":"y",
     "important": {
           "imp_1": "aa",
           "imp_3": "bb"
      } 
    }
 ]
}

以下是我想要实现的目标:

{
 "myArray": [
   {"foo":"x",
    "bar":"y",
     "important": [
           {"k":"imp_1", "v":"a"},
           {"k":"imp_2": "v":"b"}
      ]
      } 
    },
    {
    "foo":"x",
    "bar":"y",
     "important": [
       {"k":"imp_1","v": "aa"},
       {"k":"imp_3","v": "bb"}
      ] 
    }
 ]
}

是否可以用1 $ reduce来解决它? 我的问题是,它只创造了1"重要的"数组,而不是初始数组中每个对象的2。

$ reduce是否比$ unwind,$ group和$ project更好?

Thx&问候, Grunci

0 个答案:

没有答案