有人可以告诉我,如果有更好的方法可以使用Official C# Driver从MongoDB中移除一个document
而不是我在下面的内容 -
var query = Query.EQ("_id", a.Id);
database.GetCollection<Animal>("Animal").Remove(query);
此代码有效,但似乎对我来说太多了。例如,“保存”命令需要一个实例并对其进行更新。我想要像Remove(item)
这样的东西。
答案 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年)中使用它,并且可以使用。