如何使用MongoDB的官方C#驱动程序删除'ID'中的'文档'?

Tra*_*rde 25 .net c# mongodb mongodb-.net-driver

有人可以告诉我,如果有更好的方法document从使用官方C#驱动程序删除MongoDB 中的一个,而不是我以下 -

var query = Query.EQ("_id", a.Id);
database.GetCollection<Animal>("Animal").Remove(query);
Run Code Online (Sandbox Code Playgroud)

这段代码有效,但对我来说似乎太过分了.例如,"保存"命令需要一个实例并对其进行更新.我想要像 - Remove(item).

备注:我正在尝试使用C#的官方驱动程序,而不是看起来过时的NoRMSamus.

Eve*_*man 33

这就是你做的方式.我相信你知道这一点,但是如果你想把它放在一行上你可以把它组合起来,这样你就不需要定义一个查询变量了:

collection.Remove(Query.EQ("_id", a.Id));
Run Code Online (Sandbox Code Playgroud)

  • 这不再是答案,MongoDb Driver已经发生了重大变化,这是没有正确答案的:collection.DeleteOne(a => a.Id == id); (4认同)

Ost*_*ati 20

如果[id]是字符串,则必须显式使用ObjectId实例.

var query = Query.EQ("_id", ObjectId.Parse(id));
Run Code Online (Sandbox Code Playgroud)


Min*_*mal 17

最简单的方法

documentcollectionfor a C#MongoDB驱动程序中删除a (v2.0或更高版本) -

collection.DeleteOne(a => a.Id==id);
Run Code Online (Sandbox Code Playgroud)

要么-

await collection.DeleteOneAsync(a => a.Id==id);
Run Code Online (Sandbox Code Playgroud)