2014-12-03 86 views
0

我用一个函数创建了一个简单的java脚本。MongoDB:如何调用使用load funcion加载的外部函数?

我命名为Create(X),在一个for循环中执行db.mycollect.insert x倍。

当我在mongo shell上执行load函数时,它运行正确。 然后当我执行Create(10)例如。 它不创建10新文档。

我的步骤是:

  • 我创建了一个简单的脚本,

这样的:

function Create(x) 
{ 
    db.runCommand("use mycollect"); 
    for(i=i;i<x;i++) 
    { 
     db.departaments.insert([{"id":i,"name":"IT","acces":"T"}]) 
    } 
} 
  • 我跑负载( “simple.js”)这返回true
  • 最后我跑了Create(10)。它似乎更正
  • 但是,当我运行db.departments.find()。集合是无效的。

如果答案可能是简单的英语或西班牙语,我会惊喜的。

<--Solution--> 

答案在脚本上。

用户jao说这是一个错误。

感谢您的所有答案。

+0

对于(i = i,...) - >是不是应该是i = 0? – joao 2014-12-03 12:47:20

+0

我错误地复制了javascript,但错误类似于这个jao。 – 2014-12-03 12:49:52

+0

db.runCommand(“使用mycollect”)在shell中无效。你能直接在shell中创建和运行这个函数吗? – wdberkeley 2014-12-03 18:42:37

回答

1

您需要使用db.getSiblingDB('<db>')切换到数据库。

function Create(x) 
{ 
    db = db.getSiblingDB('mycollect'); 
    for(var i=0;i<x;i++) 
    { 
     db.departaments.insert([{"id":i,"name":"IT","acces":"T"}]) 
    } 
} 
+0

好吧,我尝试getSiblingDB感谢BatScream。正如用户japo所说,错误出现在我的脚本上。 – 2014-12-09 09:49:03

相关问题