Premièrement, trouvez si une requête correspondante de document existe. p>
Si tel est le cas, mettez à jour ce document avec les nouvelles données. P>
Sinon, insérez un nouveau document dans la base de données. P>
3 Réponses :
Vous pouvez utiliser "UPSert" égal à true. Ensuite, la requête de mise à jour que vous utilisez avec "UPSert", car c'est vrai faire exactement ce que vous voulez.
de la documentation de MongoDB: p> http: //www.mongodb.org/display/docs/updant p> Exemple: p> Voir la documentation "Mettre à jour" ici: p> http://api.mongodb.org/python/current/api/pymongo /collection.html p> p>
Mise à jour CODE> ne renvoie qu'un
Writeresult code>. Utilisez
FindAndModify code> à la place.
SET UPSERT = TRUE P>
Exemple de test complet. Voir aussi $ setoninsert qui contrairement à payload= {'id':'key123','other':'stuff'}
collection.update({'eventid':payload['id']}, {"$set": payload}, upsert=True)
collection.count_documents({}) # 1
payload= {'id':'key123','other':'stuff2'}
collection.update({'eventid':payload['id']}, {"$set": payload}, upsert=True)
collection.count_documents({}) # 1
payload= {'id':'key456','other':'more stuff'}
collection.update({'eventid':payload['id']}, {"$setOnInsert": payload}, upsert=True)
collection.count_documents({}) # 2
payload= {'id':'key456','other':'more stuff2'}
collection.update({'eventid':payload['id']}, {"$setOnInsert": payload}, upsert=True)
collection.count_documents({})
Dupliqué possible de MongoDB: insérer s'il n'existe pas ?
Pas de devoirs mais incapable de lire la documentation de base ....