我在 MongoDB 中进行批量写入操作以一次更新多个文档。
现在有什么方法可以知道我的查询的哪个序列号匹配步骤失败。
因为在返回的文档中我得到了nModified
,nMatched
它告诉有多少匹配失败,但不是哪个查询序列号失败了?
我在 MongoDB 中进行批量写入操作以一次更新多个文档。
现在有什么方法可以知道我的查询的哪个序列号匹配步骤失败。
因为在返回的文档中我得到了nModified
,nMatched
它告诉有多少匹配失败,但不是哪个查询序列号失败了?
您可以使用BulkWriteResult.writeErrors。它可用于有序和无序操作模式。具体来说,“op”字段会告诉您失败的文档。
这是 pymongo参考的示例输出:
{'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}}]}