Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用_id时,MongoDb chsarp中的删除失败_Mongodb_Mongodb .net Driver - Fatal编程技术网

使用_id时,MongoDb chsarp中的删除失败

使用_id时,MongoDb chsarp中的删除失败,mongodb,mongodb-.net-driver,Mongodb,Mongodb .net Driver,在一个示例程序中,当我想使用该id时,从mongo db中删除项不起作用。 我假设问题是我的类有一个Id属性,但是mongo使用一个_Id 因此,当我在下面的代码中触发remove时,没有任何更改。在使用名称或值的查询中使用remove,所有内容都会按预期工作,并且项目会被删除 有什么提示吗 MongoServer server = MongoServer.Create(@"mongodb://localhost/?safe=true"); server.Connect(); var db =

在一个示例程序中,当我想使用该id时,从mongo db中删除项不起作用。 我假设问题是我的类有一个Id属性,但是mongo使用一个_Id

因此,当我在下面的代码中触发remove时,没有任何更改。在使用名称或值的查询中使用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();

我一遍又一遍地这样做,它不断地打印出1个项目,然后是0个项目。你确定你的收藏中没有物品吗


在你的collection.Insert(a)之后,添加一个collection.RemoveAll()。

hmm我清除了整个数据库并重新创建了一个新的数据库。现在它起作用了。有点奇怪。谢谢你的帮助。
collection.Find(Query.EQ("_id",id)).Count() // returns 1 element