gpt4 book ai didi

python - Pymongo $push 不更新数组,也不异常(exception)

转载 作者:行者123 更新时间:2023-11-30 23:06:45 24 4
gpt4 key购买 nike

我有一个包含嵌套数组的文档,我似乎无法更新它,我一直在兜圈子,它开始让我烦恼,这是文档:

mongo =  pymongo.Connection()['FINS_ALL_L']['FIN_L']

f = {'plant': 'local',
'T1':{
'PID':4278,
'INST_SPECS' :{'unit_stk': 6386,
'thresh': 0.4,
'max_in': 789878,
'avg_cut': 45565},
'PU_ARRAY' : [{'power': 45789, 'unit': 78},{'power': 45757, 'unit': 1},{'power': 45127, 'unit': 11},{'power': 42567, 'unit': 10}]},

'T2':{
'PID':8422,
'INST_SPECS' :{'unit_stk': 4575,
'thresh': 0.49,
'max_in': 187878,
'avg_cut': 14787},
'PU_ARRAY' : [{'power': 51475, 'unit': 7},{'power': 59895, 'unit': 2},{'power': 57578, 'unit': 3},{'power': 54525, 'unit': 15}]}}

py_mong = mong.find_one({'plant':'local'})['T2']['PU_ARRAY']
print py_mong

>>>[{u'power': 51475, u'unit': 7}, {u'power': 59895, u'unit': 2}, {u'power': 57578, u'unit': 3}, {u'power': 54525, u'unit': 15}]

我尝试了“$push”的许多变体,它们不会抛出错误,但它们似乎也没有更新。例如:

mongo.update({'plant': 'local','T2':'PU_ARRAY'},
{'$push':
{'T2.$.PU_ARRAY':
{'power': 42577, 'unit': 19}
}
}
)

这不会引发异常,但还没有更新。有人可以帮忙吗?

最佳答案

没有匹配,没有更新。 “T2”下没有这样的“值”,它只是一个“字段名称”。我不知道您是否打算 $exists$push不在乎。此外,语句中不需要位置 $ 运算符,因为即使这是一个 $exists 测试,您甚至不会匹配数组位置。 “T2”不是数组:

mongo.update(
{'plant': 'local'},
{'$push': { 'T2.PU_ARRAY': {'power': 42577, 'unit': 19 } } }
)

关于python - Pymongo $push 不更新数组,也不异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32535572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com