ReplaceOneAsync不替换文档

时间:2016-03-28 13:44:05

标签: c# mongodb

林'使用c#驱动程序连接到mongodb数据库 我使用此代码更新文档

Mytype new_doc ; 
var filter = Builders<Mytype>.Filter.Eq(c => c.id,
new ObjectId("56f908cbe9dea82560d93fb4"));

var result = await collection.ReplaceOneAsync(filter, cnew_doc, new UpdateOptions { IsUpsert = true });

但该文件没有在数据库中发生变化

谢谢,

1 个答案:

答案 0 :(得分:0)

你有过滤器中的错误。我想知道您的代码是否正在编译,但假设c.id是MongoDB ObjectId

替换

var filter = Builders<Mytype>.Filter.Eq(c => c.id = "56f908cbe9dea82560d93fb4");

使用

如果c.id是MongoDB ObjectId:

var filter = Builders<Mytype>.Filter.Eq(c => c.id,
    new ObjectId("56f908cbe9dea82560d93fb4"));

否则:

var filter = Builders<Mytype>.Filter.Eq(c => c.id, "56f908cbe9dea82560d93fb4");