Mongodb Robomongo,如何使用自定义函数?

Mongodb Robomongo,如何使用自定义函数?,mongodb,Mongodb,我正在尝试使用mongodb客户端“Robomongo” 它工作正常,但我不明白如何访问在“函数”部分创建的函数 我想测试mapReduce功能,所以我创建了一个map()和reduce()函数,但是当我在shell上编写时: db.<name_of_collection>.mapReduce(map, reduce, {out: {inline: 1}}); 我也试过这样做: db.<collection_name>.mapReduce(db.system.js.m

我正在尝试使用mongodb客户端“Robomongo”

它工作正常,但我不明白如何访问在“函数”部分创建的函数

我想测试mapReduce功能,所以我创建了一个map()和reduce()函数,但是当我在shell上编写时:

db.<name_of_collection>.mapReduce(map, reduce, {out: {inline: 1}});

我也试过这样做:

db.<collection_name>.mapReduce(db.system.js.map, db.system.js.reduce, {out: {inline: 1}});

您可以通过多种方式访问存储的函数:

1)

db.collection.mapReduce(
    "function() { return map(); }", 
    "function(key, values) { return reduce(key, values); }",
    {out: {inline: 1}});
2)

请注意,我们现在使用的是函数,而不是1)中的字符串

3)

如果您使用的是MongoDB 2.1或更高版本,则可以执行以下操作:

db.loadServerScripts();
db.collection.mapReduce(
    map, 
    reduce,
    {out: {inline: 1}});    
关于这方面的更多信息:


Robomongo使用与MongoDB shell相同的引擎。您的问题是关于MongoDB,而不是Robomongo。

使用
Robomongo
创建函数后, 在shell命令文本框中,输入:

db.loadServerScripts();
myFunctionName();
然后单击工具栏中的
Execute
按钮

db.collection.mapReduce(
    function() { return map(); }, 
    function(key, values) { return reduce(key, values); },
    {out: {inline: 1}});
db.loadServerScripts();
db.collection.mapReduce(
    map, 
    reduce,
    {out: {inline: 1}});    
db.loadServerScripts();
myFunctionName();