Существует ли верхний предел количества документов, которые вы можете обновить в PyMongo?

Я обновляю ~ 600 000 документов в коллекции монго, используя некоторый код PyMongo, который выглядит так:

bulk = coll.initialize_ordered_bulk_op()

for index, row in df.iterrows():

    bulk.find({ '_id': ObjectId(row['id']) }).update({ '$set': { "X": 
    row['X'].split(',') } })

bulk.execute()

После некоторого дальнейшего изучения я понял, что может потерпеть неудачу для> 100 000 документов, и мне придется сделать что-то вроде того, что предлагается здесь.

Однако он отлично работает со всеми документами. Мне просто любопытно узнать, что я неправильно понял.

Заранее спасибо.


person Alice Mortlock    schedule 24.01.2018    source источник


Ответы (1)


Как указано в документации здесь:

Каждая группа операций может иметь не более 1000 операций. Если группа превышает этот предел, MongoDB разделит группу на более мелкие группы по 1000 или менее человек. Например, если список массовых операций состоит из 2000 операций вставки, MongoDB создает 2 группы по 1000 операций в каждой.

Таким образом, в основном вы фактически не выполняете 600000 операций за некоторое время, но mongoDB заботится о разделении этих операций...

person user3375448    schedule 24.01.2018