在Robo3T中,如何添加一个自定义函数
问题描述:
我刚安装了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()
,但没有工作,没有什么功能标签下出现了。
我已经附加了一些屏幕截图说明这个问题:
我点击保存按钮后,什么都没有发生,还是功能选项卡下没有的功能。日志显示功能last
已创建,并且功能选项卡正在刷新。
那么,如何在这里添加last
函数呢?
答
试过你列出的步骤,它适用于简单的查找语句。当我添加'跳过'时,保存失败。即使更新现有的功能也无效。也许Robo的问题?我不知道。
总之,添加功能Robo3t
- 右键单击收集
- 选择打开外壳
- 外壳上键入以下
db.system.js.save(
{
_id: "last",
value : function last(x) { return db.test.find().skip(db.test.count() - x); }
}
)
最后,运行脚本并刷新Function文件夹。
谢谢,现在已经创建了这个函数,但是我可能不得不问一些愚蠢的问题,因为我不知道js或者熟悉Robo3T。在创建函数'last'后,我该如何使用它。我尝试运行'last(5)','db.getCollection('rb1801'),last(5)'或db.last(5)'都不起作用。有什么建议? – StayFoolish
对于初学者,你可以看看这篇文章:https://*.com/questions/18185192/call-stored-function-in-mongodb – trashvin