在示例程序中,当我想使用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确实找到了元素而删除却没有删除它。
collection.Find(Query.EQ("_id",id)).Count() // returns 1 element
答案 0 :(得分:1)
我一遍又一遍地做了这件事,它不断打印出1件物品,然后是0件物品。您确定您的收藏品中还没有商品吗?
收集后。插入(a),添加一个collection.RemoveAll()。