使用mongoDB重命名集合

waz*_*day 5 mongodb node.js

我无法在mongoDB中重命名集合.我可以看到它存在并可以从中写入和读取数据.我使用节点mongo本机驱动程序尝试了以下操作.

db.collection("mycollection").renameCollection("mynewcollection");

error: TypeError: Object #<Collection> has no method 'renameCollection'
Run Code Online (Sandbox Code Playgroud)

db['mycollection'].renameCollection("mynewcollection");

Cannot call method 'renameCollection' of undefined
Run Code Online (Sandbox Code Playgroud)

在同一位置执行以下操作将按预期返回所有文档

db.collection("mycollection").find({}).toArray(function(err, docs){
    console.log(docs);
});
Run Code Online (Sandbox Code Playgroud)

Joh*_*yHK 13

使用node.js驱动程序重命名集合的方法rename不是renameCollection:

db.collection("mycollection").rename("mynewcollection", function(err, newColl) {...});
Run Code Online (Sandbox Code Playgroud)

  • @wazzaday为了它的价值,他们以这种方式命名,因为点链语法已经将您置于集合的上下文中.用简单的英语读取"collection.rename"更容易,但读取"collection.renameCollection"更加冗余.他们试图通过这种方式使API更加直观. (2认同)