mongodb copydatabase函数是否会覆盖目标db?

时间:2014-01-31 15:59:54

标签: mongodb

我这样使用它:

db.copyDatabase('src','dest', 'server:27017')

如果文档中的文档具有相同的ID,则会删除还是替换它们?

2 个答案:

答案 0 :(得分:3)

不,它不会删除现有数据库。相反,它会尝试合并两者。当两个数据库都具有相同唯一键的文档时,将发生错误。

> db.copyDatabase('sourcedb', 'destdb', 'localhost:27017')
{
    "errmsg" : "exception: E11000 duplicate key error index: destdb.coll1.$_id_  dup key: { : ObjectId('52ebcb2ab33a160d3f1fb6fe') }",
    "code" : 11000,
    "ok" : 0
}

Full code of the experiment

答案 1 :(得分:0)

来自copyDatabase文档:

  
      
  • db.copyDatabase()创建目标数据库(如果它不存在)。
  •   
  • 如果目标数据库存在且目标数据库中不存在源数据库的集合,则db.copyDatabase()复制
      从源数据库到目标数据库的集合。如果有的话   源数据库中的集合存在于目标数据库中,
      db.copyDatabase()出错并且不复制任何剩余的
      来自源数据库的集合。
  •