0

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
4

1 に答える 1

1

私はこれを何度も繰り返しましたが、継続的に 1 アイテムを出力し、次に 0 アイテムを出力します。あなたのコレクションにはまだアイテムがありませんか?

collection.Insert(a) の後に、collection.RemoveAll() を追加します。

于 2012-06-18T12:05:57.080 に答える