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.
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));
Si [id] est une chaîne, vous devez utiliser explicitement l'instance ObjectId.
var query = Query.EQ("_id", ObjectId.Parse(id));
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);
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;
}