根据mongodb文档,stopOnError选项强制mongoimport在第一个错误时停止导入操作,而不是在出错的情况下继续操作。
此选项有哪些各种错误?
我已针对以下错误情况对其进行了测试:
停止了mongod实例。我收到以下错误,表明它与mongodb失去了连接。
assertion: 10276 DBClientBase::findN: transport error: 127.0.0.1:15055 ns: admin.$cmd query: { getlasterror: 1 }
将同一文件再次导入到同一个数据库和集合中。这应该给我重复输入错误。虽然显示错误,但导入不会停止。
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状态?
答案 0 :(得分:0)
从https://github.com/mongodb/mongo/blob/master/src/mongo/tools/import.cpp#L314的来源可以看出,stopOnError明确地跳过了重复键错误。我已经提交了 https://jira.mongodb.org/browse/DOCS-1709让文档指定此内容。