2017-09-26 103 views
0

我刚安装了Robo3T(以前叫做robomongo),它有一个mongo db的GUI。 我想添加自定义函数来帮我拿的正常秩序的最后N个文档,查询语句是这样的:在Robo3T中,如何添加一个自定义函数

db.getCollection('i1801').find().skip(db.getCollection('i1801').count() - 1200) 

我从计算器(mongodb: how to get the last N records?)发现,这可以写成一个函数像这样:

function last(N) { 
    return db.collection.find().skip(db.collection.count() - N); 
} 

我回到我的Robo3T,尝试添加自定义函数last(),但没有工作,没有什么功能标签下出现了。

我已经附加了一些屏幕截图说明这个问题:

Trying to add a custom function

Created a custom function and saved

After save, nothing happened

我点击保存按钮后,什么都没有发生,还是功能选项卡下没有的功能。日志显示功能last已创建,并且功能选项卡正在刷新。 Here is the logs

那么,如何在这里添加last函数呢?

回答

1

试过你列出的步骤,它适用于简单的查找语句。当我添加'跳过'时,保存失败。即使更新现有的功能也无效。也许Robo的问题?我不知道。

总之,添加功能Robo3t

  1. 右键单击收集
  2. 选择打开外壳
  3. 外壳上键入以下

db.system.js.save(
 
    { 
 
    _id: "last", 
 
    value : function last(x) { return db.test.find().skip(db.test.count() - x); } 
 
    } 
 
)

最后,运行脚本并刷新Function文件夹。

+0

谢谢,现在已经创建了这个函数,但是我可能不得不问一些愚蠢的问题,因为我不知道js或者熟悉Robo3T。在创建函数'last'后,我该如何使用它。我尝试运行'last(5)','db.getCollection('rb1801'),last(5)'或db.last(5)'都不起作用。有什么建议? – StayFoolish

+0

对于初学者,你可以看看这篇文章:https://stackoverflow.com/questions/18185192/call-stored-function-in-mongodb – trashvin

相关问题