Как я могу использовать updateOne () в PyMon go без добавления дубликатов? - PullRequest
0 голосов
/ 05 января 2020

любая помощь приветствуется (я прочитал документы PyMon go, посмотрел примеры и до сих пор не вижу, где я ошибаюсь).

Я пытаюсь вставить результаты API запрос (который получает одну или несколько JSON записей) и вставляет его в мою базу данных.

В настоящее время insert () прекрасно работает как пакетная операция, но создает дубликаты:

mongo.db.arrivalPredictions.insert(predictions)

Я пытаюсь сделать эту работу, на мой взгляд, в Flask, и вместо этого вводить через тело al oop:

for item in predictions:
    item['rqTimestamp'] = datetime.now().strftime('%H:%M:%S')
    item['expectedArrival'] = item['expectedArrival'][11:-1]

    mongo.db.arrivalPredictions.update_one({"id": item['id']}, predictions, { upsert: True })

Я думаю, что я близок, но сейчас получаю 'NameError: имя' upsert 'не определено' ошибка.

Любые указатели?

Спасибо!

1 Ответ

0 голосов
/ 05 января 2020

update_one () в pymon go имеет upsert в качестве параметра bool, а не dict, поэтому вам нужно

mongo.db.arrivalPredictions.update_one({"id": item['id']}, predictions, True )

или я предпочитаю (как это немного яснее):

mongo.db.arrivalPredictions.update_one({"id": item['id']}, predictions, upsert=True )
...