How to remove one 'document' by 'ID' using the Official C# Driver for MongoDB?

假如想象 提交于 2019-12-18 03:49:24

问题


Can someone please show me, if there is a better way to remove one document from MongoDB using the Official C# Driver than what I have below-

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

This code works, but seems too much work to me. The "Save" command for example- takes an instance and updates it. I want something like- Remove(item).

Remarks: I'm trying to use the official driver of C# rather than NoRM or Samus which seems out of date.


回答1:


That's the way you do it. I'm sure you know this, but if you want to put it on one line you could combine it so you don't need to define a query variable:

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



回答2:


If the [id] is string, you must use ObjectId instance explicitly.

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



回答3:


The Simplest Way

Remove a document from a collection for C# MongoDB Driver (v2.0 or later)-

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

Or-

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



回答4:


My ASP.NET Core MVC controller's action accepts Id as a string parameter. Then I parse it and use the result in the DeleteOne() statement:

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


来源:https://stackoverflow.com/questions/8867032/how-to-remove-one-document-by-id-using-the-official-c-sharp-driver-for-mongo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!