在 Robo3T 中,如何添加自定义功能
Posted
技术标签:
【中文标题】在 Robo3T 中,如何添加自定义功能【英文标题】:in Robo3T, how to add a custom function 【发布时间】:2018-03-07 05:47:50 【问题描述】:我刚刚安装了 Robo3T(以前称为 robomongo),它有一个用于 mongo db 的 GUI。 我想添加一个自定义函数来帮助我按正常顺序获取最后N个文档,查询语句是这样的:
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
函数?
【问题讨论】:
【参考方案1】:尝试了您列出的步骤,它适用于简单的查找语句。当我添加“跳过”时,保存失败。即使更新现有功能也不起作用。也许是机器人的问题?我不知道。
无论如何,要在 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)
都不起作用。有什么建议吗?
对于初学者,您可以查看这篇文章:***.com/questions/18185192/…【参考方案2】:
调用函数:
db.loadServerScripts(); callyourfunction();
-
右键点击收藏
点击打开shellhttps://i.stack.imgur.com/YTiGc.jpg
在 shell 中运行 db.loadServerScripts();https://i.stack.imgur.com/BDTBT.jpg
调用用户函数如:addTwo(2,5);https://i.stack.imgur.com/EujGo.jpg
注意 :: 对于看到的输出,请确保您的函数应该是返回值
【讨论】:
以上是关于在 Robo3T 中,如何添加自定义功能的主要内容,如果未能解决你的问题,请参考以下文章