La suppression de documents dans PyMongo à partir de l'id
Je semble avoir du mal à trouver la bonne façon de supprimer un document. I. e. dois-je utiliser remove() ou delete_one() par exemple et aussi ce qui est la forme canonique de la méthode de suppression par id, qui est un string
.
I. e. dois-je utiliser l'suivantes:
mongo.db.xxx.delete_one({'_id': { "$oid" : str(_id) } })
ou puis-je utiliser un autre format?
mongo.db.xxx.remove({'_id': { "$oid" : str(_id) } })
mongo.db.xxx.remove({'_id': ObjectId(_id) })
Quelle est la forme canonique?
OriginalL'auteur disruptive | 2015-10-05
Vous devez vous connecter pour publier un commentaire.
remove
est déconseillé dans les 3.x sortie de pymongo, donc le courant de forme canonique serait d'utiliserdelete_one
:L'appel renvoie une
DeleteResult
dans lequel vous pouvez inspecter ladeleted_count
champ pour voir si il trouve un document à supprimerQuand j'ai essayer ceci à la ligne de commande, je reçois le texte suivant:
NameError: name 'ObjectId' is not defined
Vous avez besoin d'importer que si vous n'êtes pas déjà le faire. Voir mise à jour de réponse.
OriginalL'auteur JohnnyHK