0

根据 mongodb 文档,stopOnError 选项强制 mongoimport 在第一个错误时停止导入操作,而不是在出现错误时继续操作。

此选项适用于哪些各种错误?

我已经针对以下错误情况对其进行了测试:

  1. 停止了 mongod 实例。我收到以下错误,表明它失去了与 mongodb 的连接。

    assertion: 10276 DBClientBase::findN: transport error: 127.0.0.1:15055 ns: admin.$cmd query: { getlasterror: 1 }
    
  2. 再次将相同的文件导入相同的数据库和集合。这应该给我重复输入错误。虽然显示了错误,但导入并未停止。

    Mon Jul 15 16:28:40.652 E11000 duplicate key error index: users.contacts_2.$_id_  dup key: { : "xexjiroiqcwujiuxrmedntmxhalniwygdyplrfvkjvfugdvxpadfvpferqtaquht" }
    Mon Jul 15 16:28:40.652 check 9 11
    Mon Jul 15 16:28:40.652 E11000 duplicate key error index: users.contacts_2.$_id_  dup key: { : "uyioegyqcenijjickljgdpmvihvyefvyfenjkmcptqafalhmwrvbjkwrtutybpxg" }
    Mon Jul 15 16:28:40.652 imported 10 objects
    

现在,我很困惑。stopOnError 仅适用于网络错误还是也适用于写入错误?有什么方法可以在使用 mongoimport 时设置写入问题或获取 getLastError 状态?

4

1 回答 1

0

从https://github.com/mongodb/mongo/blob/master/src/mongo/tools/import.cpp#L314的源代码可以看出,stopOnError 显式跳过了重复键错误。我已提交 https://jira.mongodb.org/browse/DOCS-1709以让文档指定这一点。

于 2013-07-16T00:15:47.733 回答