使用 mongoDB 重命名集合
renaming a collection with mongoDB
我无法在 mongoDB 中重命名集合。我可以看到它存在并且可以从中写入和读取数据。我尝试使用节点 mongo 本机驱动程序进行以下操作。
db.collection("mycollection").renameCollection("mynewcollection");
error: TypeError: Object #<Collection> has no method 'renameCollection'
和
db['mycollection'].renameCollection("mynewcollection");
Cannot call method 'renameCollection' of undefined
在同一个地方执行以下操作returns 所有文档都符合预期
db.collection("mycollection").find({}).toArray(function(err, docs){
console.log(docs);
});
使用 node.js 驱动重命名集合的方法是 rename
,而不是 renameCollection
:
db.collection("mycollection").rename("mynewcollection", function(err, newColl) {...});
将此代码添加到您的 collection.js(它应该添加到第 153 行,或 collection.js 代码的末尾),它应该可以解决问题。
req.collection.rename(name, function(err, collection) {
if (err) {
- req.session.error('Something went wrong: ' + err);
+ req.session.error = 'Something went wrong: ' + err;
console.error(err);
return res.redirect('back');
}
req.updateCollections(req.db, req.dbName, function(err) {
if (err) {
- req.session.error('Something went wrong: ' + err);
+ req.session.error = 'Something went wrong: ' + err;
return res.redirect('back');
}
- req.session.success('Collection renamed!');
+ req.session.success = 'Collection renamed!';
res.redirect(config.site.baseUrl+'db/' + req.dbName + '/' + name);
});
});
我无法在 mongoDB 中重命名集合。我可以看到它存在并且可以从中写入和读取数据。我尝试使用节点 mongo 本机驱动程序进行以下操作。
db.collection("mycollection").renameCollection("mynewcollection");
error: TypeError: Object #<Collection> has no method 'renameCollection'
和
db['mycollection'].renameCollection("mynewcollection");
Cannot call method 'renameCollection' of undefined
在同一个地方执行以下操作returns 所有文档都符合预期
db.collection("mycollection").find({}).toArray(function(err, docs){
console.log(docs);
});
使用 node.js 驱动重命名集合的方法是 rename
,而不是 renameCollection
:
db.collection("mycollection").rename("mynewcollection", function(err, newColl) {...});
将此代码添加到您的 collection.js(它应该添加到第 153 行,或 collection.js 代码的末尾),它应该可以解决问题。
req.collection.rename(name, function(err, collection) {
if (err) {
- req.session.error('Something went wrong: ' + err);
+ req.session.error = 'Something went wrong: ' + err;
console.error(err);
return res.redirect('back');
}
req.updateCollections(req.db, req.dbName, function(err) {
if (err) {
- req.session.error('Something went wrong: ' + err);
+ req.session.error = 'Something went wrong: ' + err;
return res.redirect('back');
}
- req.session.success('Collection renamed!');
+ req.session.success = 'Collection renamed!';
res.redirect(config.site.baseUrl+'db/' + req.dbName + '/' + name);
});
});