4

我正在从一个数据库导出数据并将数据导入另一个数据库。当我在使用 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" }

我已经验证在与 mongoexport 相同的机器上使用 mongoimport 可以正常工作,所以我假设 mongoimport/export 从 2.4 到 2.6 之间存在兼容性问题。由于防火墙限制,我需要使用两台不同的机器来移动数据。

有没有人有任何解决这个问题的好方法。据我所知,我还没有看到以旧格式导出的选项。我也无法从发行说明中看出是什么导致了兼容性错误。

4

1 回答 1

3

我最终使用了 mongodump 和 mongorestore 而不是 mongoimport 和 mongo export。使用 bson 文档而不是 json 没有兼容性问题。

于 2014-06-05T18:41:36.097 回答