【发布时间】:2012-06-30 14:55:21
【问题描述】:
我想通过命令导出MongoDB中的所有集合:
mongoexport -d dbname -o Mongo.json
结果是:
未指定收藏!
手册说,如果你不指定一个集合,所有的集合都会被导出。
但是,为什么这不起作用?
http://docs.mongodb.org/manual/reference/mongoexport/#cmdoption-mongoexport--collection
我的 MongoDB 版本是 2.0.6。
【问题讨论】:
-
您使用的是哪个版本的 MongoDB? mongoexport 的 wiki 文档表明这是一个用于导出集合的命令行工具。也许导出多个集合的能力是为了更新版本?如果要备份数据库中的所有集合,mongodump 会将所有集合导出到 BSON。
-
看起来对所有集合使用 mongoexport 的选项是一个尚未计划的计划功能:SERVER-201 .. 所以 mongodump 目前是导出完整数据库的最佳选择。使用 MongoDB client drivers 之一编写相当于 mongoexport 的内容并不难。
-
您应该将答案标记为已接受。我的投票是stackoverflow.com/a/16605781/1686575
-
作为记录,MongoDB documentation 声明 避免使用 mongoimport 和 mongoexport 进行完整实例生产备份。它们不能可靠地保留所有丰富的 BSON 数据类型,因为 JSON 只能表示 BSON 支持的类型的子集。使用 MongoDB 备份方法中描述的 mongodump 和 mongorestore 来实现这种功能。 因此,它不仅适用于 Mentor Reka 所说的懒惰的人,而且也是执行此操作的首选方法。