Mongodb根据第二个数组上特定字段的并集(使用一个语句)来更新或插入对象数组

时间:2018-08-29 14:29:58

标签: mongodb mongodb-query

我有一个文档,其中的一个字段是包含多个字段的对象数组。

{
    "_id" : "1",
    "data" : [ 
        {
            "time" : 500,
            "offset" : -20,
            "sample" : 10
        },
        {
            "time" : 700,
            "offset" : -20,
            "sample" : 30
        }
    ]
}

我希望能够使用新条目更新数组,并且如果已经存在具有特定“时间”和“偏移”的条目,那么我还希望覆盖样本值的更新。

例如,如果我传入具有值的数组

[ 
   {
       "time" : 500,
       "offset" : -20,
       "sample" : 20
   },
   {
       "time" : 600,
       "offset" : -20,
       "sample" : 10
   }
 ]

预期输出为

{
    "_id" : "1",
    "data" : [ 
       {
           "time" : 500,
           "offset" : -20,
           "sample" : 20
       },
       {
           "time" : 600,
           "offset" : -20,
           "sample" : 10
       },
       {
           "time" : 700,
           "offset" : -20,
           "sample" : 30
       }
    ]
}

有没有办法在单个语句中做到这一点?

0 个答案:

没有答案