转储包含GridFS引用的mongo集合的子集?

时间:2012-07-24 19:46:02

标签: mongodb pymongo gridfs mongodump

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

(如果没有任何简单的方法只使用Mongo的命令行工具进行导出,我不会特别感到惊讶,所以如果是这样的话,我也会对以编程方式进行导出的方式感兴趣,但使用像mongorestore这样的标准工具生成可以导入的输出.Python的mongo驱动程序是我最舒服的驱动程序,但我并不挑剔。)

1 个答案:

答案 0 :(得分:2)

目前没有内置任何内容可以做到这一点,你最好的选择是写一个python脚本。

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

请参阅PyMongo GridFS documentation