如何在流星中重命名集合?

时间:2015-03-16 06:14:25

标签: mongodb meteor

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

db.originalCollectionName.renameCollection('newCollectionName')

但它只来自shell

1 个答案:

答案 0 :(得分:0)

由于Meteor构建于NodeJS之上,因此您可以使用任何NodeJS包和API。在您的情况下,您可以使用Child Process API在代码中使用bash命令运行重命名命令。

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

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()"。可以在docs中找到更多选项。 (如果你已经在你的机器上使用MongoDB,而不是Meteor提供的那个,那么这将有效。)