首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我想首先创建一个数据库,然后根据mongodb中的值更新它

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

Stack Overflow用户
提问于 2019-06-01 18:17:57
回答 1查看 34关注 0票数 0

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

machineOne = None oneIn =1 True: global machineOneId global userId try: if Entry1.get_value()和oneIn < 2:

代码语言:javascript
复制
        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

EN

回答 1

Stack Overflow用户

发布于 2019-06-04 03:34:01

下午好@digs10,

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

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

根据我在代码中看到的(我不知道Python,但它是可读的),您使用字段"id“而不是"_id”来引用文档"Entry1“。

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

我希望这个答案能帮助你。

诚挚的问候,

JB

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56405811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档