将二进制数据从mongoDB移动到rethinkDB

时间:2015-09-18 03:59:35

标签: mongodb rethinkdb

我正在尝试将数据从mongo移动到rethinkand。到目前为止没有任何作用。 我尝试的第一件事是:

mongoexport -h 127.0.0.1 -d basal -c tickets -o tickets.json

将其导出为json然后......

rethinkdb import -f tickets.json --table basal.tickets --format json

将其导入为json。看起来很简单。虽然不起作用......

我收到此错误:

0 rows imported in 1 table
ReQL error during 'import': String `ÿØÿá` (truncated) contains NULL byte at offset 8.
ReQL error during 'import': String `PNG

` (truncated) contains NULL byte at offset 9.
ReQL error during 'import': String `ÿØÿá` (truncated) contains NULL byte at offset 8.
ReQL error during 'import': String `PNG

` (truncated) contains NULL byte at offset 9.
Errors occurred during import

有问题的数据是带有二进制图像附件的字段。

附件字段如下所示(截断):

{"attach":[{"name":"image001.png","size":20745,"disp":"in
line","cid":"image001.png@01D0411E.BD3054F0","type":"image/png","body":"<U+0089>PNG\r\n\u001a\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0001>\u0000\u
0000\u0001\u0000\b\u0002\u0000\u0000\u0000¥*<U+008D>º\u0000\u0000\u0000\u0001sRGB ......"} ...]}

关于如何使用二进制值导入字段的任何想法?

1 个答案:

答案 0 :(得分:1)

RethinkDB当前不支持字符串中的NULL字节。我们提供r.binary假型来解决这个问题。我要做的是编写一个脚本,逐行读取输入数据,解析它,用该行中的'body: '...\u0000...'替换'body: r.binary('...\u0000...'),然后插入该行。