Я попытался обновить существующий документ двумя точечными параметрами, мой запрос:
{ _id: "4eda5...", comments._id: "4eda6...", comments.author: "john" }
мое обновление было:
{ "comments.$.deleted": true }
Однако, как ни странно, когда я пропустил несуществующую комбинацию идентификатора комментария + автора, он просто обновил первый соответствующий комментарий этого автора.
Есть идеи, почему это происходит?
РЕДАКТИРОВАТЬ: C # Пример кода
var query = Query.And(Query.EQ("_id", itemId), Query.EQ("cmts._id", commentId));
if (!string.IsNullOrEmpty(author))
query = Query.And(query, Query.EQ("cmts.Author", author));
var update = Update.Set("cmts.$.deleted", true);
var result = myCol.Update(query, update, UpdateFlags.None, SafeMode.True);