我刚安装了Robo3T(之前名为robomongo),它有一个用于mongo db的GUI。 我想添加一个自定义函数来帮助我按正常顺序获取最后N个文档,查询语句是这样的:
db.getCollection('i1801').find().skip(db.getCollection('i1801').count() - 1200)
我从stackoverflow(mongodb: how to get the last N records?)发现,这可以写成这样的函数:
function last(N) {
return db.collection.find().skip(db.collection.count() - N);
}
然后我回到我的Robo3T,尝试添加自定义函数last()
,但没有效果,功能选项卡下没有显示任何内容。
我附上了一些屏幕截图,说明了这个问题:
单击“保存”按钮后,没有任何操作,功能选项卡下仍然没有功能。日志显示创建的函数last
,并刷新功能选项卡。
那么,我如何在这里添加last
函数?
答案 0 :(得分:1)
尝试了您列出的步骤,它适用于简单的查找语句。当我添加'skip'时,保存失败。甚至更新现有功能也不起作用。也许是Robo的一个问题?我不知道。
无论如何,要在Robo3t中添加功能
db.system.js.save(
{
_id: "last",
value : function last(x) { return db.test.find().skip(db.test.count() - x); }
}
)
最后,运行脚本并刷新Function文件夹。
答案 1 :(得分:0)
用于调用函数:
db.loadServerScripts();
callyourfunction();
注意::对于可见的输出,请确保您的函数应为返回值