Используйте сохраненные значения при обновлении в Mongo - PullRequest
0 голосов
/ 16 мая 2019

Я храню журнал сообщений, отправленных пользователям. Я использую поле «идентификатор» для идентификации пользователей. Идентификатором может быть идентификатор электронной почты или номер телефона.

Итак, схема:

{identifier: <email or phone>,
     message_log: [ {
            date: "2019-05-16T19:54:52.600Z",
            status: "delivered"
           }, 
           {
            "date": "2019-06-16T19:54:52.600Z",
            "status": "bounced"
           }
]
}

Message_log - это массив объектов. Теперь, когда я получаю статусы доставки некоторых новых сообщений, мне нужно найти их идентификаторы и вставить новый журнал в его message_log массив , но , если для какого-либо идентификатора нет журналов, мне нужно его создать.

Я использовал этот код:

await MessageDeliveryModel.bulkWrite([
  {
    updateMany: {
      filter: {identifier: {$in: deliveries}},
      update:  {
        $push: { "message_log":
            {'date': new Date(), 'status': 'delivered'}
        },
        $set: {'identifier': "$identifier"}
// deliveries is just a list of identifiers
// I just need it to set delivery[i] for 'identifier'
      },
      upsert: true,
    },
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...