60 votes

Comment obtenir l’ID d’objet dans PyMongo après un insert?

Je fais un simple encart dans Mongo...

Une fois le document de note inséré, je dois obtenir l’ID de l’objet immédiatement. Le résultat qui revient de l’insertion contient des informations de base concernant la connexion et les erreurs, mais pas d’informations sur le document et le champ.

J’ai trouvé quelques informations sur l’utilisation de la fonction update() avec upsert=true, je ne suis tout simplement pas sûr que ce soit la bonne façon de procéder, je ne l’ai pas encore essayé.

96voto

Tyler Brock Points 9769

L’une des choses intéressantes à propos de MongoDB est que les ID sont générés côté client.

Cela signifie que vous n’avez même pas besoin de demander au serveur quel était l’identifiant, car vous lui avez dit quoi enregistrer en premier lieu. En utilisant pymongo, la valeur de retour d’une insertion sera l’ID de l’objet. Regarde:

44voto

Kumar Saurabh Points 533

La réponse de Tyler ne fonctionne pas pour moi. L’utilisation de _id.inserted_id fonctionne

17voto

Mehdi Hasirchi Points 141

Il est préférable d’utiliser insert_one() ou insert_many() au lieu de insert(). Ces deux sont pour la nouvelle version. Vous pouvez utiliser inserted_id pour obtenir l’id.

Ou

Si vous devez utiliser insert(), vous devez écrire comme les lignes ci-dessous

2voto

Wes Freeman Points 17475

mise à jour; supprimé précédemment parce qu’il n’était pas correct

Il semble que vous puissiez également le faire avec `` , qui renvoie le _id après avoir effectué l’insertion.

Voir pour plus d’informations: http://api.mongodb.org/python/current/api/pymongo/collection.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X