MongoDB导入/导出索引
我需要一种工具,用于在预先创建正确数据库名称,集合,设置集合上限以及为每个集合创建索引的环境之间快速重新创建适当的“模式”(例如它)MongoDB实例。 不过,我不想复制这些实例之间的所有数据。 我管理的每个环境都有不同的数据,但DB / collection / caps /索引完全相同。 有没有简单的方法来做到这一点,最好是一个工具,导出所有的名称,大小写和索引的JSON文档,然后可以重新导入到一个新的实例?
在找不到任何合适的工具后,我将数据库转储并恢复为无数据,因此元数据得以恢复(特别是所有的集合都使用适当的索引创建),但集合是空的。 这也可以应用于具有数据的数据库,因此如果没有冲突,索引将在现有数据库上创建。
用mongodump
一个垃圾mongodump
2.清空收藏的数据
find ./dump -name '*bson' -type f -exec cp /dev/null {} ;
3.Restore数据与新的数据库mongorestore
有一次,我也有同样的问题。 我所做的是一组JS文件,我必须在每个env上手动运行( mongo
可以评估脚本)。 这些文件里面有数据,所以我不得不小心管理它们,不要引入dups /损坏的现有数据。
但是,我发现迁移工具对这些任务非常有用。 这是我的最爱,但还有很多其他解决方案。
想想你作为不可变事件流的变化。 例如:为了删除以前创建的索引,您可以创建新的更改(迁移),从而删除它。 您将该流作为一组文件存储在您的VCS中,因此对于新项目中的新人来说,新环境的设置非常简单( mm migrate
,基础是最新的!)。 另外,这种方法在使用容器或虚拟机时非常有用:通常,您可以基于容器/虚拟机生命周期触发脚本,从而自动填充数据库,从而使重新启动/重新创建变得轻松无比。
上一篇: MongoDB import/export indexes
下一篇: How to use Globalize 1.0 and get specified culture info