使用mongodb在一个查询中将元素推送到数组

时间:2017-12-06 20:50:34

标签: mongodb mongoid3

使用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 个答案:

没有答案