我从一个数据库导出数据并将数据导入另一个数据库。当我将数据导出到具有mongo 2.6的计算机上时,但是当我使用mongo 2.4将数据导入VM时。两个mongod实例都运行2.4。
我一直收到这个错误:
Wed Jun 4 13:13:32.604 check 0 0
Wed Jun 4 13:13:32.604 imported 0 objects
Wed Jun 4 13:13:32.604 ERROR: encountered 1 error(s)
failed: [192.168.140.30] => (item=collection) => {"changed": true, "cmd": "mongoimport -u username -p password -d db -c collection --drop --jsonArray /tmp/collection.json ", "delta": "0:00:00.026383", "end": "2014-06-04 13:13:33.091774", "item": "collection", "rc": 255, "start": "2014-06-04 13:13:33.065391"}
stdout: connected to: 127.0.0.1
Wed Jun 4 13:13:33.089 dropping: <db.collection>
Wed Jun 4 13:13:33.089 exception:BSON representation of supplied JSON array is too large: code FailedToParse: FailedToParse: Date expecting integer milliseconds: offset:171
导出的日期格式如下所示
{ "date" : { "$date" : "2014-06-02T06:39:28.869-0700" }
我已经验证在mongoixport在同一台机器上使用mongoimport工作正常,所以我假设mongoimport / export从2.4到2.6之间存在兼容性问题。由于防火墙的限制,我需要使用两台不同的机器来移动数据。
有没有人为这个问题做过任何好的工作。据我所知,我还没有看到以旧格式导出的选项。我也无法从发布说明中了解到导致兼容性错误的原因。
答案 0 :(得分:3)
我最终使用mongodump和mongorestore而不是mongoimport和mongo export。使用bson文档而不是json没有兼容性问题。