Mongodb обновляет или вставляет массив объектов на основе объединения определенных полей во втором массиве с помощью одного оператора - PullRequest
0 голосов
/ 29 августа 2018

У меня есть документ, в котором одно из полей является массивом объектов, содержащих несколько полей.

{
    "_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
       }
    ]
}

Есть ли способ сделать это в одном утверждении?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...