pymongo更新没有工作

时间:2017-12-19 21:32:08

标签: python mongodb pymongo

有人可以帮我这个,我不能改变mongodb的一些值。

这是“结构”:

'nombreLinea': nombreLinea,
'barra':
        { 'nombre': 
            { 
                'nombre_PLP': nombreBarraPLP,
                'nombre_PET': nombreBarraPET, 
                'nombre_OSE': nombreBarraOSE,
            }
        }, 
    'generador': 
        [{
            'nombre': 
                { 
                    'nombre_PLP': nombreGeneradorPLP,
                    'nombre_PET': nombreGeneradorPET,
                    'nombre_OSE': nombreGeneradorOSE,
                }
         }]

我想做的是:

def actualizarMongo(nombreLineaa, nombreBarraPLP, nombreGeneradorPET, nombreBarraPLPGen):  
    if nombreBarraPLP == nombreBarraPLPGen:  
        db.linea.update(
            {
                "nombreLinea": nombreLineaa,  
                "barra.nombre.nombreBarraPLP": nombreBarraPLPGen  
            },  
            {'$set': { 
                "generador.nombre.nombre_PET": nombreGeneradorPET  
            }})

谢谢!

2 个答案:

答案 0 :(得分:0)

您的查询"barra.nombre.nombreBarraPLP"的这一部分与您的文档结构不符。

另外,根据结构,generador是一个文档数组,因此您需要在更新中包含数组元素:

{'$set':{"generador.0.nombre.nombre_PET": nombreGeneradorPET }

答案 1 :(得分:0)

这部分代码不合适:

{'$set':{"generador.nombre.nombre_PET": nombreGeneradorPET }}

这是一个实际上在数组中的文档。所以请尝试阅读本文档:update document in an array

希望它可以帮助你。