我正在使用Mongo U C#驱动程序。我可以从MongoD中读取得很好(并且可以使用Mongo shell删除)。
但是当我尝试做其中一件事时:
var DeleteOne = await col.DeleteOneAsync(x => (x["student_id"] == studentKey) && (x["score"] == scoreVal));
var DeleteTwo = await col.DeleteOneAsync(
Builders<BsonDocument>.Filter.Eq("student_id", studentKey)
& Builders<BsonDocument>.Filter.Eq("score", scoreVal)
);
var DeleteThree = col.DeleteOne(
Builders<BsonDocument>.Filter.Eq("student_id", studentKey)
& Builders<BsonDocument>.Filter.Eq("score", scoreVal)
);
它返回Acknowledged = true,但DeleteCount = 0。
我也尝试删除_id字段,但是,它再次确认文档存在,但删除不会持续存在。
当我在查找中使用这个精确过滤器时,我得到了我想要删除的特定行。
答案 0 :(得分:1)
我或多或少有同样的问题,但以下对我来说很好:
var myContext = new MyContext();
var builder = Builders<MyType>.Filter;
var filter = builder.Eq (x => x.Id, someId);
myContext.MyCollection.DeleteOneAsync(filter);