04-重命名集合
22.1.2 重命名集合
重命名MongoDB数据库中的集合 本节介绍一个集合重命名示例,演示使用命令renameCollection将一个集合重命名,并存储到另一个数据库中的步骤。重命名集合时,可指定不同的集合名并将其保留在原来的数据库中,还可保留集合名并将其放在另一个数据库中。请执行如下步骤,将示例数据库拷贝中的集合重命名。 1.确保启动了MongoDB服务器。 2.确保运行了生成数据库words的脚本文件code/hour05/generate_words.js,并完成了前一小节的数据库复制示例。 3.使用下面的命令启动MongoDB shell: 4.使用下面的命令切换到数据库admin: 5.使用下面的命令将数据库words_copy的集合word_stats重命名为word_stats2,并放到数据库words_copy2中: 6.使用下面的命令切换到数据库words_copy2,并核实其中的集合word_stats2确实包含一些文档: ▲
对集合执行的另一种常见任务是重命名。通过将集合重命名,可将原来的名称用于存储新数据的集合。这在有些情况下很有用。例如,您可能有一个应用程序,它将订单存储在集合orders中,而您只想在这个集合中存储当月的订单。为此,可在每个月的月底将集合orders重命名为orders_MM_YYYY(其中MM为月份,而YYYY为年份),从而让应用程序能够使用集合orders来存储下一个月的订单。
要重命名集合,可在数据库admin中使用命令renameCollection。这个命令接受一个包含如下参数的对象。
- renameCollection:必须指定的参数。指定要重命名的集合的命名空间,格式为database.collection。
- todb:必须指定的参数。指定重命名后的命名空间,格式为database.collection。如果指定的数据库不存在,将创建它。
- dropTarget:可选的布尔参数。如果为true,将删除同名的集合;否则保留原来的集合,而重命名将以失败告终。
▼ Try It Yourself
mongo
use admin
db.runCommand({ renameCollection: "words_copy.word_stats",
to: "words_copy2.word_stats2",
dropTarget: true})
use words_copy2
db.word_stats2.find().count()