【问题标题】:How to rename a collection in meteor?如何重命名流星中的集合?
【发布时间】:2015-03-16 06:14:24
【问题描述】:

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

db.originalCollectionName.renameCollection('newCollectionName')

但它只是来自 shell

【问题讨论】:

    标签: mongodb meteor


    【解决方案1】:

    由于 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 提供的那个,这将起作用。)

    【讨论】:

    • 但是 mongo 是插入流星的吗?我必须输入“meteor mongo”才能访问 shell mongo 并且 --eval 不要退出。我想念什么?对不起我的英语不好:p
    • 我的解决方案并不完美,因为它需要您运行本机 MongoDB,而不是 Meteor 提供的那个(如果我错了,任何人都可以纠正我)是不同的。你可以看看如何运行你自己的 Mongo here
    猜你喜欢
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多