Я делаю вручную upsert на Collection
с JSON Array.
I l oop через массив и сначала нахожу совпадение. Если совпадение существует, я вызываю на нем set
- в противном случае я insert
в collection
.
for (let obj of objs) {
//check for match where 'foo' and 'bar' Objects match
const match = await Model.findOne({foo:obj.foo, bar:obj.bar});
if (match) {
//show value b4 update
console.log('b4 ', match.fizz);
//If match, then update the 'fizz' field
match.set({fizz:obj.fizz});
//This actually shows that the update happened
console.log('after ', match.fizz);
} else {
//Otherwise, insert this new Object into the Collection
await Model.insert(obj)
}
}
Проблема в том, что запись не обновляется в фактической БД, когда Я go в Пн go. Тем не менее, моя отладка показывает, что она была обновлена, что заставило меня поверить, что команда set
«сработала». Странно то, что insert
, похоже, работает, и я вижу в БД новый документ, а не обновленный. Есть идеи относительно того, что может происходить? Спасибо