我想使用upsert更新Entry1的值。我有一个传感器可以返回Entry1的值。如果传感器被阻塞,则值为true。如果传感器未被阻塞,则该值为False。
machineOne = None oneIn =1 True: global machineOneId global userId try: if Entry1.get_value()和oneIn < 2:
machineOne = Entry1.get_value()
print('entered looopp ONeeeE', machineOne)
machine1 = {
'Entry1': Entry1.get_value(),
'Exit1': Exit1.get_value(),
'id': 'test'
}
result = Machine1.insert_one(machine1)
myquery = {"Entry1": 'true'}
newvalues = {"$set": {"id": result.inserted_id}}
#result = Machine1.insert_one(machine1)
Machine1.update_one(myquery, newvalues)
userId = result.inserted_id
oneIn += 1
print('added', result.inserted_id, oneIn)
elif machineOne:
print('entered looopp', userId)
myquery = {"id": userId}
newvalues = {"$set": {"id": Entry1.get_value()}}
upsert = True
#result = Machine1.insert_one(machine1)
Machine1.update_one(myquery, newvalues)
if Exit1.get_value():
print('added',)
finally:
print('nothings happened', machineOne)
期望:我应该能够在显示在robo3t中的相同日志中将Entry1从true更新为false
发布于 2019-06-04 03:34:01
下午好@digs10,
我读了你的帖子,我认为错误在于你如何定位你想要更新的文档。
我记得MongoDB文档主键是"_id“而不是"id”。你可以看看这里,MongoDB Documents
根据我在代码中看到的(我不知道Python,但它是可读的),您使用字段"id“而不是"_id”来引用文档"Entry1“。
尝试修改myquery = {"_id": userId}
的myquery = {"id": userId}
行。
我希望这个答案能帮助你。
诚挚的问候,
JB
附言:我在电子邮件中看到了这个问题,并快速阅读了一下,如果我误解了它,请告诉我。
https://stackoverflow.com/questions/56405811
复制相似问题