Выдвигайте и извлекайте элементы в массив в одном запросе с помощью mongodb

С Mongoid я пытаюсь сделать:

models.update_all({
  '$pullAll' => { category_ids: removed_category_ids },
  '$addToSet' => { category_ids: { '$each' => added_category_ids } }
})

У меня есть это сообщение об ошибке:

Mongo::Error::OperationFailure:
   Cannot update 'category_ids' and 'category_ids' at the same time (16837)

Я понимаю ошибку, но есть ли способ сделать эти два запроса только в одном запросе. Я знаю, что могу сделать что-то вроде:

models.update_all({ '$pullAll' => { category_ids: removed_category_ids } })
models.update_all({ '$addToSet' => { category_ids: { '$each' => added_category_ids } } })

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

Является ли это возможным?

0 ответов

Другие вопросы по тегам