在示例程序中,当我想使用 id 时,从 mongo db 中删除项目不起作用。我假设问题是我的班级有一个 Id 属性,但 mongo 使用一个 _id ?
因此,当我在以下代码中触发删除时,没有任何变化。将 remove 与使用名称或值的查询一起使用,一切都按预期工作,并且项目被删除。
有什么提示吗?
MongoServer server = MongoServer.Create(@"mongodb://localhost/?safe=true");
server.Connect();
var db = server.GetDatabase("data");
var collection = db.GetCollection<Foo>("foo");
string id = Guid.NewGuid().ToString();
Foo a = new Foo();
a.Id = id;
a.name = "Boas";
a.Value = 1;
collection.Insert<Foo>(a);
Console.WriteLine(collection.Count()+ " items"); // Count is 1
collection.Remove(Query.EQ("_id",id));
Console.WriteLine(collection.Count() + " items"); // Count is still 1 :-( should be 0
Console.ReadLine();
另外:当我对 Find() 使用相同的查询时,找到了该项目。所以我不明白为什么 find 确实找到了元素并且 remove 没有删除它。
collection.Find(Query.EQ("_id",id)).Count() // returns 1 element