MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Document de mise à jour PyMongo avec plusieurs enregistrements

Pour les nouveaux articles

db.cmpe285.update({"username":username}, {"$push": {"stocks":{"name":stock_symbol,"count":allotment,"price":initial_share_price}}})

Pour mettre à jour les éléments existants , en supposant que vous mettez à jour l'attribution. vous devez utiliser l'opérateur positionnel ($) avec la valeur de tableau référencée dans la requête.

db.cmpe285.update({"username":username, "stocks.name":stock_symbol}, {"$set": {"stocks.$.count":allotment2}})

Pour remonter des éléments , c'est un processus en 2 étapes. Vous devez d'abord exécuter la requête de la même manière que vous le faites pour mettre à jour les éléments existants comme ci-dessus et inspecter la réponse du résultat d'écriture de la requête ci-dessus et vérifier le nombre modifié. Si le nombre modifié est de 0, cela signifie que nous devons mettre à jour et vous le ferez comme dans le cas de l'ajout de nouveaux éléments.

db.cmpe285.update({"username":username, "stocks.name":stock_symbol}, {"$set": {"stocks.$.count":allotment2}})

Vérifiez le WriteResult , si nmodifié égal à 0.

db.cmpe285.update({"username":username}, {"$push": {"stocks":{"name":stock_symbol,"count":allotment2,"price":initial_share_price}}})

Si le nmodifié est égal à 1, la mise à jour a réussi.