sql >> Base de Datos >  >> NoSQL >> MongoDB

Documento de actualización de PyMongo con múltiples registros

Para artículos nuevos

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

Para actualizar elementos existentes , asumiendo que está actualizando la asignación. debe utilizar el operador posicional ($) con el valor de matriz al que se hace referencia en la consulta.

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

Para alterar elementos , es un proceso de 2 pasos. Primero deberá ejecutar la consulta de la misma manera que lo hace para actualizar los elementos existentes como se indicó anteriormente e inspeccionar la respuesta del resultado de escritura de la consulta anterior y verificar el recuento modificado. Si el recuento de modificaciones es 0, significa que debemos actualizar y luego lo hará como en el caso de agregar nuevos elementos.

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

Compruebe WriteResult , si nmodificado es igual a 0.

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

Si nmodified es igual a 1, la inserción se realizó correctamente.