我正在尝试根据过滤器查询更新 bson 文档,但是它不是更新过滤的记录,而是创建一个新文件,然后从那时起更新该文件。请问有人可以帮忙吗?见下面的代码示例:
注意 - 当不按嵌套元素过滤时,通常不会发生这种行为。
//Filter update by user's Id
var filter = Builders<BsonDocument>.Filter.Eq("UserID", userID);
//Filter update by nested bookmark Id to update
var arrayFilters = new List<ArrayFilterDefinition>
{ new BsonDocumentArrayFilterDefinition<BsonDocument>(new
BsonDocument("i.bookmarkID", bookmarkID ))
};
//variables to update
var update = Builders<BsonDocument>.Update
.Set("userBookmarks.$[i].Name", viewName)
...
;
var updateOptions = new UpdateOptions { ArrayFilters = arrayFilters };
collection.UpdateOne(filter, update, updateOptions);
await App.NavigationPage.Navigation.PushAsync(new homepage());