Обновление Mongodb с upsert и мульти синтаксисом

Я новичок в mongodb и так устал от mongodb 'Неполная документация оставляет меня для проб и ошибок ... к сожалению, все мои попытки не работают без ошибок, оставляя меня в замешательстве о том, что происходит и что нужно отлаживать ...

Мне просто нужно обновить несколько записей в базе данных, соответствующих определенным критериям, и для несуществующих записей создать новые записи для этого. Я считаю, что я могу сделать это с помощью единого доступа к базе данных с обновлениями, upsert и multi. Вот'что ямы придумали: я

dbschema.Person.update( { person_id: { $in: ["734533604" ,"701084015"] } }, { $set: {"scores": 1200} }, { options: { upsert: true, multi: true } } );

Мы также пробовали несколько комбинаций или даже старую версию, такую как:

dbschema.Person.update( { person_id: { $in: ["734533604" ,"701084015"] } }, { $set: {"scores": 1200} }, { upsert: true }, { multi: true } );

ни один из них не работает ...

Пожалуйста, помогите мне с этим таким тривиальным делом ... Я могу легко сделать это в SQL, но Nosql вещь ограничивает меня .. Спасибо!

РЕДАКТИРОВАТЬ:

Тот же запрос на поиск работает отлично:

dbschema.Person.find( { person_id: { $in: ["734533604" ,"701084015"] } }, function ( err, results ) {
    console.log( 'result: ' + results );
    console.log( 'error: ' + err );
    console.log( 'result length: ' + results.length );
} );

РЕДАКТИРОВАТЬ:

Я ожидаюне найдено" запись, которая будет создана, и найденная запись, которая будет обновлена. моя логика может быть испорчена, и я теперь так растерялся.

Первоначально я находил () - по одной записи за раз, менял значение и вызывал save () для каждой измененной записи, но при развертывании в режиме реального времени время отклика становится в сотни раз медленнее, особенно когдаНесколько сотен записей, которые будут обновляться при каждом запросе.

Затем я обнаружил find () + $ in, и производительность восстановилась и даже лучше, чем предыдущая (при запросе), но обновление все еще неприемлемо медленное. Поэтому сейчас я ищу способы обновить все документы за один запрос. ,

то, что я обычно делаю в SQL, использует ОБНОВЛЕНИЕ, КОГДА ДЕЛА ... например:

UPDATE person SET score = CASE
WHEN person_id = "734533604" THEN 1200
WHEN person_id = "701084015" THEN 1200
ELSE
score
END

Ответы на вопрос(1)

Ваш ответ на вопрос