MongoDB:如何导出 GridFS 文件 + 块

问题描述

我有一个多微服务应用程序,它使用 java、python 将一些文件保存到 mongo 4.2.8 然后进行处理。我收集的文件通过 gridFS 通过两个集合 *.files 和 *.chunks 保存

在不依赖实际文件的情况下,我在 Java 中构建了一个批量处理工具,只需通过这两个 mongo 集合重新处理所有所述文件

这个想法是我从环境中导出 gridFS 数据(基于查询,例如 12 月的所有文件),然后将其导入我的本地 mongo 实例以在本地进行批量重新处理。

问题是这两个 gridFS 集合的导出命令有问题

*.files 集合有一个uploadDate 字段,我可以查询mongoexport。一旦我弄清楚如何解析扩展的 json 语法,我就可以导出 *.files 数据。但是,由于 *.chunks 没有 uploadDate 字段,我需要以某种方式从 *.files 数据中获取 ObjectID,然后在 *.chunks 的查询导出中过滤它们,我不知道该怎么做>

以下示例是我当前导出 *.files 的进度,尽管我不断收到“位置参数过多”错误

...\mongoexport.exe --host=replica/host:port,host2:port2,host3:port3 --authenticationMechanism=GSSAPI --authenticationDatabase=$external --username "me@DOMAIN" --password "password" --ssl --sslCAFile C:\test\ca.pem --db=abc --collection=attachments.files --query='{ "uploadDate" : { "$gte" : "$date" : "2020-10-01T00:00:000Z" },"$lte" : "$date" : "2020-11-01T00:00:000Z" } } }' --out=C:\test\output.json

有什么建议吗?如果重要的话,我在 Windows 操作系统上运行它

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)