我刚刚安装了Robo3T(以前名为robomongo),它有一个用于mongo的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函数?
发布于 2017-09-26 06:41:39
尝试了您列出的步骤,它适用于简单的find语句。当我添加“跳过”时,保存失败。即使是更新现有的函数也不起作用。也许和Robo有问题?我不知道。
无论如何,要在Robo3t中添加函数
db.system.js.save(
{
_id: "last",
value : function last(x) { return db.test.find().skip(db.test.count() - x); }
}
)
最后,运行脚本和刷新函数文件夹。
发布于 2019-11-05 11:12:16
用于调用函数的:
db.loadServerScripts(); 调用你的函数();
注意::对于看到的输出,请确保您的函数应该是一个返回值
https://stackoverflow.com/questions/46419071
复制相似问题