Khi sử dụng bộ lọc để loại bỏ các phần tử mảng, bạn cần sử dụng PullFilter
trình xây dựng thay vì Pull
(phù hợp với toàn bộ phần tử).
var collection = db.GetCollection<Person>("people");
var filter = new BsonDocument("username", "bodrum");
var update = Builders<Person>.Update.PullFilter("followerList",
Builders<Follower>.Filter.Eq("follower", "fethiye"));
var result = collection.FindOneAndUpdateAsync(filter, update).Result;
Hoặc ngắn gọn hơn, sử dụng lambdas:
var update = Builders<Person>.Update.PullFilter(p => p.followerList,
f => f.follower == "fethiye");
var result = collection
.FindOneAndUpdateAsync(p => p.username == "bodrum", update).Result;