1

我有一个大型 Mongo 集合,我想从中转储一个子集以复制到登台服务器以进行测试。此集合包括作为 GridFS 文件的 ObjectID 的字段。我可以使用 mongodump 的 --query 标志轻松地获取集合的子集,但我想不出任何简单的方法来仅转储主集合中匹配记录引用的 GridFS 文件和块。实现这一目标的最痛苦的方法是什么?

(如果没有任何直接使用 Mongo 的命令行工具进行导出的方法,我不会感到特别惊讶,所以如果是这种情况,我也会对以编程方式进行导出的方法感兴趣,但产生可以使用 mongorestore 等标准工具导入的输出。Python 的 mongo 驱动程序是我最熟悉的驱动程序,但我并不挑剔。)

4

1 回答 1

2

目前没有内置的东西可以做到这一点,最好的选择是编写一个 python 脚本。

最好不要使用 mongodump。编写 python 脚本以从原始服务器读取并插入到登台服务器。如果您在每个 gridfs 文件的文档级别执行此操作,请先执行块,然后执行文件 doc。如果您使用的是 python gridfs 类,只需从原始服务器读取并保存到登台服务器。

请参阅PyMongo GridFS 文档

于 2012-07-25T13:02:21.163 回答