Question

J'ai une question de débutant PyMongo: Si collection est un PyMongo Collection et je l'utilise pour enregistrer un objet avec

obj = {'foo': 'bar'}
collection.insert(obj)

MongoDB puis génère automatiquement un champ _id pour obj; une fois peut confirmer avec

print obj

qui donne quelque chose comme

{'foo': 'bar', '_id': ObjectId('4c2fea1d289c7d837e000000')}

Ma question est: Comment puis-je obtenir ce retour de _id de telle façon que je peux l'utiliser

Par exemple, si je veux supprimer obj de la base de données, je pense que je voudrais faire quelque chose comme

collection.remove(obj['_id'])

mais quand j'essaie ce que je reçois le message

TypeError: 'ObjectId' object is unsubscriptable.

Qu'est-ce qui se passe?

Était-ce utile?

La solution

insérer renvoie la _id du document inséré.

et supprimer supprimerons basé sur _id, alors essayez quelque chose comme:

doc_id = db.test.insert({"foo": 1})
db.test.remove(doc_id)

Autres conseils

Vous avez juste besoin de passer remove un dict, comme vous l'avez fait insert. Donc, pour supprimer un document en fonction de sa valeur _id, faire quelque chose comme:

collection.remove({'_id': ObjectId('4c2fea1d289c7d837e000000')})

Vous pouvez juste passer obj.

pour la suppression d'un objet de document que vous devez mentionner l'état Comme vous pouvez le spécifier "_id" pour un document ........

_id = db.test.insert({"foo": "test"})
db.test.remove({"_id":_id})
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top