У меня есть коллекция, элементы которой могут быть упрощены до этого:
{tags : [1, 5, 8]}
где в массиве будет по крайней мере один элемент, и все они должны быть разными. Я хочу заменить один тег на другой, и я подумал, что проблем не будет. Поэтому я придумал следующий запрос:
db.colll.update({
tags : 1
},{
$pull: { tags: 1 },
$addToSet: { tags: 2 }
}, {
multi: true
})
Прохладный, так что он найдет все элементы, у которых есть тег, который мне не нужен (1), удалите его и добавьте еще (2), если его еще нет. Проблема в том, что я получаю сообщение об ошибке:
"Невозможно обновить теги и теги одновременно
В основном это означает, что я не могу делать pull и addtoset одновременно. Есть ли другой способ, которым я могу это сделать?
Конечно, я могу запомнить все идентификаторы элементов, а затем удалить тег и добавить в отдельные запросы, но это не очень приятно.