首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB导入/导出索引

MongoDB导入/导出索引
EN

Stack Overflow用户
提问于 2015-06-29 23:55:10
回答 3查看 14K关注 0票数 20

我需要一个工具,用于在预先创建正确的数据库名称、集合、设置集合上限并为每个集合创建索引的环境之间,快速重新创建MongoDB实例的正确“模式”(例如,它是这样的)。不过,我不想在实例之间复制所有数据。我管理的每个环境都有不同的数据,但DB/collection/caps/indexes都是相同的。有没有一种简单的方法可以做到这一点,最好是有一个工具可以导出所有名称、大写和索引的JSON文档,然后可以重新导入到新的实例中?

EN

回答 3

Stack Overflow用户

发布于 2016-09-08 03:48:29

在我没有找到合适的工具后,我转储了数据库并恢复了它,没有数据,所以恢复了元数据(特别是所有的集合都是用适当的索引创建的),但是集合是空的。这也可以应用于包含数据的数据库,因此如果没有冲突,将在现有数据库上创建索引。

1.使用mongodump进行转储

2.清空集合的数据

find ./dump -name '*bson' -type f -exec cp /dev/null {} \;

3.使用mongorestore将数据恢复到新的数据库

票数 5
EN

Stack Overflow用户

发布于 2015-06-30 00:47:15

有一次,我也遇到了同样的问题。我所做的是一组JS文件,我必须在每个环境上手动运行它们(mongo可以评估脚本)。这些文件中有数据,所以我必须小心地管理它们,以免引入重复/损坏现有数据。

但是,我发现迁移工具对这类任务非常有帮助。我最喜欢This one,但也有many other solutions

把你的变化想象成不可变的事件流。例如:为了删除之前创建的索引,您创建了新的更改(迁移),这将删除它。您将该流作为一组文件存储在您的VCS中,因此为新环境设置非常简单(mm migrate和您的基础是最新的!)为项目新手准备的。此外,当您使用容器或VM时,这种方法非常有用:通常,您可以基于容器/VM生命周期触发脚本,从而自动填充DB,从而轻松地重新启动/重新创建。

票数 4
EN

Stack Overflow用户

发布于 2018-07-19 14:01:32

我今天写了一些东西来说明这一点。导出只是使用API方法在所选数据库的集合上调用list_indexes()options()。导入将创建数据库,并使用索引和选项创建集合。

https://github.com/JonnoFTW/mongo-schema-export

它会生成一个文件,您可以使用该文件在另一个数据库上设置索引、caps和验证器。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31120237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档