MongoDB Bulkwrite, какие запросы не выполнялись на этапе сопоставления? - PullRequest
0 голосов
/ 23 ноября 2018

Я выполняю операцию массового ввода в MongoDB для обновления нескольких документов за один раз.

Теперь Есть ли способ узнать, какой порядковый номер моих запросов не соответствует шагу.

Потому что в возвращенном документе я получаю nModified, nMatched, который сообщает, сколько совпадений не удалось, а не какой порядковый номер запроса получил ошибку?

1 Ответ

0 голосов
/ 23 ноября 2018

Вы можете использовать BulkWriteResult.writeErrors .Он доступен как в обычном, так и в неупорядоченном режиме работы.В частности, в поле «op» будет указан документ, который не удался.

Вот пример выходных данных из pymongo reference :

{'nInserted': 0,
'nMatched': 1,
'nModified': 1,
'nRemoved': 0,
'nUpserted': 0,
'upserted': [],
'writeConcernErrors': [],
'writeErrors': [{u'code': 11000,
              u'errmsg': u'...E11000...duplicate key error...',
              u'index': 1,
              u'op': {'_id': 4}}]}
...