Ответ 1
То, как вы это делаете. Я уверен, что вы это знаете, но если вы хотите поместить его на одну строку, вы можете объединить его, чтобы вам не нужно было определять переменную запроса:
collection.Remove(Query.EQ("_id", a.Id));
Может кто-нибудь показать мне, если есть лучший способ удалить один document
из MongoDB с использованием официального драйвера С#, чем у меня below-
var query = Query.EQ("_id", a.Id);
database.GetCollection<Animal>("Animal").Remove(query);
Этот код работает, но мне кажется, слишком много работы. Команда "Сохранить" для example- берет экземпляр и обновляет его. Я хочу что-нибудь like- Remove(item)
.
Замечания: я пытаюсь использовать официальный драйвер С#, а не NoRM или Samus, который кажется устаревшим.
То, как вы это делаете. Я уверен, что вы это знаете, но если вы хотите поместить его на одну строку, вы можете объединить его, чтобы вам не нужно было определять переменную запроса:
collection.Remove(Query.EQ("_id", a.Id));
Если [id] является строкой, вы должны явно использовать экземпляр ObjectId.
var query = Query.EQ("_id", ObjectId.Parse(id));
Удалить document
из collection
для С# MongoDB Driver (v2.0 или более поздняя версия) -
collection.DeleteOne(a => a.Id==id);
Or-
await collection.DeleteOneAsync(a => a.Id==id);
Действие моего контроллера 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;
}