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

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

 var query = Query.EQ("_id", a.Id); database.GetCollection("Animal").Remove(query); 

这段代码有效,但对我来说似乎太过分了 。 例如,“保存”命令需要一个实例并对其进行更新。 我想要类似的东西 – Remove(item)

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

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

 collection.Remove(Query.EQ("_id", a.Id)); 

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

 var query = Query.EQ("_id", ObjectId.Parse(id)); 

C#MongoDB.Driver 2.0或更高版本的collection删除document最简单方法是:

 collection.DeleteOne(a => a.Id == id); 

要么

 await collection.DeleteOneAsync(a => a.Id == id); 

我的ASP.NET Core MVC控制器的操作接受Id作为字符串参数。 然后我解析它并使用DeleteOne()语句中的结果:

 [HttpPost] public IActionResult Delete(string id) { ObjectId objectId = ObjectId.Parse(id); DbContext.Users.DeleteOne(x => x.Id == objectId); return null; }