2017-09-26 105 views
0

我剛安裝了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(),但沒有工作,沒有什麼功能標籤下出現了。

我已經附加了一些屏幕截圖說明這個問題:

Trying to add a custom function

Created a custom function and saved

After save, nothing happened

我點擊保存按鈕後,什麼都沒有發生,還是功能選項卡下沒有的功能。日誌顯示功能last已創建,並且功能選項卡正在刷新。 Here is the logs

那麼,如何在這裏添加last函數呢?

回答

1

試過你列出的步驟,它適用於簡單的查找語句。當我添加'跳過'時,保存失敗。即使更新現有的功能也無效。也許Robo的問題?我不知道。

總之,添加功能Robo3t

  1. 右鍵單擊收集
  2. 選擇打開外殼
  3. 外殼上鍵入以下

db.system.js.save(
 
    { 
 
    _id: "last", 
 
    value : function last(x) { return db.test.find().skip(db.test.count() - x); } 
 
    } 
 
)

最後,運行腳本並刷新Function文件夾。

+0

謝謝,現在已經創建了這個函數,但是我可能不得不問一些愚蠢的問題,因爲我不知道js或者熟悉Robo3T。在創建函數'last'後,我該如何使用它。我嘗試運行'last(5)','db.getCollection('rb1801'),last(5)'或db.last(5)'都不起作用。有什麼建議? – StayFoolish

+0

對於初學者,你可以看看這篇文章:https://stackoverflow.com/questions/18185192/call-stored-function-in-mongodb – trashvin

相關問題