是否可以将多个mongodb合并到一个框中

时间:2016-02-03 16:05:32

标签: mongodb

我有几个盒子运行他们自己的mongo实例,到目前为止我每个人都有大约2 gig的数据。我有一个盒子,我现在开始将所有数据路由到,但我必须"合并"并将这些框中的数据汇总回这一个整合框。

我正在为每个方框做的是我正在运行

mongodump mydb restorepath

然后在传输bson输出后在我的大盒子中运行mongorestore。还有另一种方法吗?我担心这样做会遇到问题,比如id碰撞,你有什么问题。

1 个答案:

答案 0 :(得分:0)

从多台机器导入文档时的Id冲突是不太可能的,因为ObjectId的3个字节代表生成id的系统的机器标识符。具有相同ObjectId的两个系统的可能性是1600万中的一个。即使你在同一台机器上运行两个MongoDB实例(除非你想尝试分片和复制,否则你不会尝试分片和复制),你不会发生冲突,因为进程ID也是ObjectId的一部分。

所有这些当然只适用于让MongoDB生成ObjectId本身的情况。您的应用程序也可以将_id字段设置为自己的值。该值甚至不需要是ObjectId。它可以是MongoDB支持的任何值。