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

时间:2012-01-15 02:07:31

标签: c# .net mongodb mongodb-.net-driver

有人可以告诉我,如果有更好的方法可以使用Official C# Driver从MongoDB中移除一个document而不是我在下面的内容 -

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

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

备注:我正在尝试使用C#的官方驱动程序,而不是NoRMSamus似乎过时了。

5 个答案:

答案 0 :(得分:33)

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

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

答案 1 :(得分:19)

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

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

答案 2 :(得分:16)

最简单的方法

从{{1>}中删除{{1>} C#MongoDB驱动程序(v2.0或更高版本) -

document

或者 -

collection

答案 3 :(得分:1)

我的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;
}

答案 4 :(得分:0)

var filter = Builders<BsonDocument>.Filter.Eq("_id",ObjectId.Parse(id));
var x = data.DeleteOne(filter);

我正在当前版本(2019年)中使用它,并且可以使用。