我想首先创建一个数据库,然后根据mongodb中的值进行更新

2024-10-03 17:15:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用upsert更新Entry1的值。我有一个传感器,返回Entry1的值。如果传感器被阻塞,则该值为真。如果传感器未阻塞,则该值为假

machineOne=无 一英寸=1 尽管如此: 全球机器索引 全局用户ID 尝试: 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


Tags: idgetvalue传感器resultoneprintmyquery
1条回答
网友
1楼 · 发布于 2024-10-03 17:15:42

下午好@digs10

我读了你的帖子,我认为错误在于你如何找到你想要更新的文档

我记得MongoDB文档主键是“_id”而不是“id”。你可以看看这里MongoDB Documents

对于我在代码中看到的内容(我不知道Python,但它是可读的),您使用字段“id”而不是“\u id”引用文档“Entry1”

尝试修改myquery = {"_id": userId}的行myquery = {"id": userId}

我希望这个答案能对你有所帮助

致以最良好的祝愿

JB

附言:我在电子邮件中看到了这个问题,我快速阅读了一下,如果我误解了,请告诉我

相关问题 更多 >