Как работает операция Bulkwrite в Mongodb? - PullRequest
2 голосов
/ 14 января 2020

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

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

1) Во-первых, если я выполняю операцию массовой записи, это будет atomi c?

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

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

1 Ответ

1 голос
/ 14 января 2020

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...