Я только что обновился до Mongo 2.6.1, и один оператор обновления, который работал раньше, не возвращает ошибку. Оператор обновления:
db.post.update( { 'answers.comments.name': 'jeff' },
{ '$set': {
'answers.$.comments.$.name': 'joe'
}},
{ multi: true }
)
Ошибка, которую я получаю:
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 2,
"errmsg" : "Too many positional (i.e. '$') elements found in path 'answers.$.comments.$.createUsername'"
}
})
Когда я обновляю элемент только на один уровень, а не на два (т.е. answers.$.name
вместо answers.$.comments.$.name
), он отлично работает. Если я уменьшу свой экземпляр mongo ниже 2.6, он также отлично работает.