假设如果我有一个包含两个集合 collA 和 collB 的数据库 testdb,并尝试从转储中仅恢复 collB。
即使只有 collB 在转储中,是否将 --drop 选项与 mongorestore 一起使用会从 testdb 中删除现有的集合(collA 和 collB)?
我正在使用 MongoDB 2.6.5
假设如果我有一个包含两个集合 collA 和 collB 的数据库 testdb,并尝试从转储中仅恢复 collB。
即使只有 collB 在转储中,是否将 --drop 选项与 mongorestore 一起使用会从 testdb 中删除现有的集合(collA 和 collB)?
我正在使用 MongoDB 2.6.5
不,实际上,根据官方文档:
--drop 在从转储备份恢复集合之前,从目标数据库中删除集合。--drop 不会删除不在备份中的集合。
使用 --drop 时,如果集合同时存在于数据库和备份集合中,mongorestore 将删除它们。它不会删除备份集合中不存在的集合。
因此在您的示例中, collB 将被删除并恢复,而 collA 保持不变。
是的。--drop选项从目标数据库中删除所有集合,并将它们替换为从转储中恢复的集合。