Как удалить один "документ" по "ID" с помощью официального драйвера С# для MongoDB? - программирование

Как удалить один "документ" по "ID" с помощью официального драйвера С# для MongoDB?

Может кто-нибудь показать мне, если есть лучший способ удалить один document из MongoDB с использованием официального драйвера С#, чем у меня below-

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

Этот код работает, но мне кажется, слишком много работы. Команда "Сохранить" для example- берет экземпляр и обновляет его. Я хочу что-нибудь like- Remove(item).

Замечания: я пытаюсь использовать официальный драйвер С#, а не NoRM или Samus, который кажется устаревшим.

4b9b3361

Ответ 1

То, как вы это делаете. Я уверен, что вы это знаете, но если вы хотите поместить его на одну строку, вы можете объединить его, чтобы вам не нужно было определять переменную запроса:

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

Ответ 2

Если [id] является строкой, вы должны явно использовать экземпляр ObjectId.

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

Ответ 3

Самый простой способ

Удалить document из collection для С# MongoDB Driver (v2.0 или более поздняя версия) -

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

Or-

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

Ответ 4

Действие моего контроллера ASP.NET Core MVC принимает идентификатор в виде строкового параметра. Затем я разбираю его и использую результат в инструкции DeleteOne():

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