sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB .Net driver 2.0 Pull (eliminar elemento)

Al usar un filtro para eliminar elementos de la matriz, debe usar el PullFilter constructor en lugar de Pull (que coincide con elementos completos).

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;

O algo más sucinto, usando lambdas:

var update = Builders<Person>.Update.PullFilter(p => p.followerList,
                                                f => f.follower == "fethiye");
var result = collection
    .FindOneAndUpdateAsync(p => p.username == "bodrum", update).Result;