web-dev-qa-db-fra.com

Comment supprimer un 'document' par 'ID' à l'aide du pilote officiel C # pour MongoDB?

Est-ce que quelqu'un peut me montrer s'il existe un meilleur moyen de supprimer une document de MongoDB en utilisant le Pilote C # officiel que ce que j'ai sous-

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

Ce code fonctionne, mais semble trop de travail pour moi. La commande "Enregistrer", par exemple, prend une instance et la met à jour. Je veux quelque chose comme- Remove(item).

Remarques: J'essaie d'utiliser le pilote officiel de C # plutôt que NoRM ou Samus qui semble obsolète.

25
Travis Laborde

C'est comme ça que vous le faites. Je suis sûr que vous le savez, mais si vous voulez le mettre sur une seule ligne, vous pouvez le combiner pour ne pas avoir à définir de variable de requête:

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

Si [id] est une chaîne, vous devez utiliser explicitement l'instance ObjectId.

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

La manière la plus simple

Supprimer une document d'une collection pour Pilote MongoDB C # (version 2.0 ou ultérieure) -

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

Ou-

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

L'action de mon contrôleur ASP.NET Core MVC accepte Id en tant que paramètre de chaîne. Ensuite, je l'analyse et utilise le résultat dans l'instruction DeleteOne ():

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