Как работает операция Bulkwrite в Mongodb?

Я хотел сделать объемную запись на моем MongoDb, Коллекция, на которой я использую объемную, очень проста.

В чем я не уверен, так это в том, что для меня было бы правильным использовать объемную запись. У меня есть следующие вопросы:

1) Во-первых, если я сделаю операцию объемного письма, это атомарно?

2) Будет ли массовая запись выполнять все обновления одновременно или могут быть задержки между записями?

    bulkArr.push({
            updateOne: {
                        "filter": { "_id": input[i].variantId },
                        "update": { $inc: { "stocks": -quant } }
                        }
                 });

Всего 1 ответ


операция bulkwrite , это атомное?

Из документов

  • Операция записи является атомарной на уровне одного документа, даже если операция изменяет несколько встроенных документов в одном документе.
  • Когда одна операция записи (например, updateMany() или bulkWrite() ) изменяет несколько документов, модификация каждого документа является атомарной, но операция в целом не является атомарной.

Будет ли bulkwrite запись писать делать все обновления одновременно?

  • Не совсем, параметр { ordered : false/true } bulkWrite() { ordered : false/true } указывает, будет ли bulkWrite() выполнять операции по порядку или нет. По умолчанию операции выполняются по порядку. документы

  • Также в bulkWrite() операции одного и того же типа (например, множественные вставки) могут быть сгруппированы и отправлены на сервер, что происходит в пакетных размерах, не превышающих 100 000 операций записи.


Есть идеи?

10000