【问题标题】:in Robo3T, how to add a custom function在 Robo3T 中,如何添加自定义功能
【发布时间】:2018-03-07 05:47:50
【问题描述】:

我刚刚安装了 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 函数?

【问题讨论】:

    标签: javascript mongodb robo3t


    【解决方案1】:

    尝试了您列出的步骤,它适用于简单的查找语句。当我添加“跳过”时,保存失败。即使更新现有功能也不起作用。也许是机器人的问题?我不知道。

    无论如何,要在 Robo3t 中添加功能

    1. 右键收藏
    2. 选择打开外壳
    3. 在外壳上键入以下内容

    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) 都不起作用。有什么建议吗?
    • 对于初学者,您可以查看这篇文章:stackoverflow.com/questions/18185192/…
    【解决方案2】:

    调用函数:

    db.loadServerScripts();
    callyourfunction();

    1. 右键点击收藏
    2. 点击打开shell
      https://i.stack.imgur.com/YTiGc.jpg
    3. 在 shell 中运行 db.loadServerScripts();
      https://i.stack.imgur.com/BDTBT.jpg
    4. 调用用户函数如:addTwo(2,5);
      https://i.stack.imgur.com/EujGo.jpg

    注意 :: 对于看到的输出,请确保您的函数应该是返回值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-28
      • 2020-11-07
      • 2020-02-13
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      相关资源
      最近更新 更多