Я хочу сначала создать базу данных, а затем обновить ее в соответствии со значениями в mongodb - PullRequest
0 голосов
/ 01 июня 2019

Я хочу обновить значение Entry1, используя upsert.У меня есть датчик, который возвращает значение Entry1.Если датчик заблокирован, значение равно true.Если датчик не заблокирован, значение равно False.

machineOne = Нет oneIn = 1, а True: глобальный machineOneId global userId try: if Entry1.get_value () и oneIn <2: </p>

        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)

что ожидается: я должен иметь возможность обновить Entry1 с true на false в том же журнале, отображаемом в robo3t

1 Ответ

0 голосов
/ 03 июня 2019

Добрый день @ digs10,

Я прочитал ваше сообщение и думаю, что ошибка в том, как вы находите документ, который вы хотите обновить.

Я помню, что первичный ключ документа MongoDB - "_id "вместо" id ".Вы можете посмотреть здесь Документы MongoDB

Для того, что я вижу в коде (я не знаю Python, но он читается), вы ссылаетесь на документ "Entry1", используяполе "id" вместо "_id.

Попробуйте изменить строку myquery = {"id": userId} для myquery = {"_id": userId}.

Надеюсь, этот ответ поможет вам.

С наилучшими пожеланиями,

JB

PS: я увидел этот вопрос в своем электронном письме и быстро прочитал его. Если я его неправильно понял, пожалуйста, дайте мне знать.

...