Монго массовое обновление - PullRequest
       6

Монго массовое обновление

0 голосов
/ 31 августа 2018

Мне нужно выполнить массовое обновление в Mongodb, для этого я использую метод pymongo.bulk_write только с операциями UpdateOne.

В случае несоответствующих фильтров я получаю больше полей из других источников и вставляю документ. Но это невозможно при массовой записи, потому что в ответ на массовую запись я получаю BulkWriteResult со следующими полями

'nInserted': 0 'nMatched': 100 'nModified': 80 'nRemoved': 0 'nUpserted': 0 'upserted': [] 'writeConcernErrors': [] 'writeErrors': []

Не совпадают идентификаторы / индексы.

Каким будет оптимальный способ выполнить этот поток?

(я использую: Mongodb 3.6, python 3.6, pymongo 3.7)

Пример:

поля модели документа = идентификатор пользователя, имя_пользователя, last_seen, google_username

При обновлении должно обновляться только last_seen

db.collection.update( { "user_name": "xyz"}, { "last_seen": 10000000 }) Если имя пользователя отсутствует, вставьте все поля

db.collection.insert({"userid": 1, "user_name": "xyz", "last_seen":10000000, google_username: "xyz@google.com"})

Так у меня будет очень много данных пользователя.

...