2017-03-02 96 views
2

我目前有一个大型数据库,我需要一种备份数据的子集的方法,然后可以将其导入另一个mongodb实例。例如,我需要找到包含关键字的所有文档,所以基本上是:find({key:'somekey'}),然后导出该数据集。我以为只需在NodeJS中运行查询,并将数据保存为JSON格式。我不认为这是最佳的,因为通过我的理解,再次导入JSON数据(如果将来需要的话)将不会是一个简单的任务,因为数据类型将会丢失。如何从mongodb导出数据子集

所以我的问题是,我将如何去导出数据集的一个子集,以便它可能被重新导入另一台服务器上的另一个mongodb实例。

+0

你可以试试' mongoexport -d databasename -c collectionnaame -q'{key:'somekey'}'--out/collection.json'更多https://docs.mongodb.com/manual/reference/program/mongoexport/和https:/ /docs.mongodb.com/manual/reference/program/mongodump/#bin.mongodump – Veeram

+0

我必须在文档中看到它。我会立即尝试并报告。 – supreme0100

+0

按预期工作。在我数据库的某些部分进行测试,似乎一旦重新导入就可以按预期工作。谢谢!!! – supreme0100

回答

1

感谢@ Veeram的评论,要做到这一点的方式是BSON,以便它保留了所有的数据结构:

sudo mongodump -d DB_Name -c Collection -q '{"key_name": "value"}' --out /home/collection 

然后将其导入回:

sudo mongorestore -d DB_Name -c Collection /home/collection/DB_Name/Collection.bson