我有两个环境DEV和STAGE,我需要将我的collections
的全部从DEV数据库转移到STAGE中的数据库。
目前正在使用 mongodump 来获取我的所有收藏和索引,这看起来效果非常好。
>mongodump --host 192.168.#.# --port 27019 --db MyDB
然后我使用 mongorestore 用适当的集合和索引填充STAGE。
>mongorestore --host 192.168.#.# --port 27019 --db test "C:\Program Files\MongoDB 2.6 Standard\bin\dump\MyDB"
我的收藏和索引非常完美,但我的收藏内容也是如此。我还没有办法在我的馆藏中排除我的实际数据......这可行吗?我是否可以从 mongodump 的输出中删除文件,以便仅使用我的collections
及其索引'。
答案 0 :(得分:1)
MongoDB是无模式的,所以基本上没有恢复空集合的意义。当您进行写入时,即时创建集合。
我知道你只想将集合的元数据恢复为索引等,我不知道你使用的驱动程序,但我建议你通过编写创建索引等的例程在应用程序级别处理这个问题。
同样删除bson文件并保留mongodump中的元数据文件,如你所建议的那样(或者至少在我的情况下使用mongo V 3.0.5和wiretiger引擎)但是没有记录据我所知。
另一个替代方法是在mongodump上使用-query选项来指定要包含的文件,即:{_ id:a_non_existing_id}但此选项仅适用于集合级转储。