如何在流星中重命名集合



我想从代码而不是 shell 重命名集合,但我找不到命令,我知道

db.originalCollectionName.renameCollection('newCollectionName')

但它只来自壳牌

由于 Meteor 建立在 NodeJS 之上,因此您可以使用任何 NodeJS 包和 API。在这种情况下,可以使用子进程 API 在代码中使用 bash 命令运行重命名命令。

Gentlenode的创始人Julien给出了这个答案,并写了这篇文章来更详细地描述这个过程。为方便起见,将其复制如下。

exec = Npm.require('child_process').exec;
child = exec('ls -la', function(error, stdout, stderr) {
  console.log('stdout: ' + stdout);
  console.log('stderr: ' + stderr);
  if(error !== null) {
    console.log('exec error: ' + error);
  }
}
// More concisely
runCommand = function (error, stdout, stderr) {
  console.log('stdout: ' + stdout);
  console.log('stderr: ' + stderr);
  if(error !== null) {
    console.log('exec error: ' + error);
  }
}
exec("ls -la", runCommand);

在您的代码中,您将使用 mongo --eval "yourcommand()" .可以在文档中找到更多选项。(前提是你使用机器上已经使用的MongoDB,而不是Meteor提供的那个,这将起作用。

最新更新