2017-09-26 17 views
0

방금 ​​mongo db 용 GUI가있는 Robo3T (이전 이름은 robomongo)를 설치했습니다. 내가 나를 정상적인 순서의 마지막 N 문서를 얻을 수 있도록 사용자 정의 기능을 추가 할 쿼리 문은 다음과 같습니다, 사용자 정의 함수 추가 방법

db.getCollection('i1801').find().skip(db.getCollection('i1801').count() - 1200) 

그리고 I에 유래 (mongodb: how to get the last N records?)에서 발견, 이것은 함수로 기록 될 수있다 같은 :

function last(N) { 
    return db.collection.find().skip(db.collection.count() - N); 
} 

그리고 사용자 정의 기능 last()를 추가하려고, 내 Robo3T로 돌아가지만 작동하지 않았다가, 아무것도 기능 탭 아래에 없었다.

나는이 문제를 보여주는 몇 가지 화면 캡처를 설치하지 않는 :

Trying to add a custom function

Created a custom function and saved

After save, nothing happened

내가 저장 버튼을 클릭 한 후, 아무 일도 여전히 기능 탭에서 어떤 기능을. 로그에 기능 last이 생성되고 기능 탭이 새로 고쳐집니다. Here is the logs

여기에 어떻게 last 함수를 추가 할 수 있습니까?

답변

1

나열된 단계를 시도했지만 단순한 find 문을 처리했습니다. '건너 뛰기'를 추가하면 저장에 실패했습니다. 기존 기능을 업데이트해도 작동하지 않았습니다. 로보와 관련된 문제일까요? 나는 모른다. 어쨌든

는 입력 쉘에 Robo3t에

  1. 오른쪽 클릭 수집
  2. 열기를 선택 쉘
  3. 을 기능을 추가하려면 다음

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

마지막으로 스크립트를 실행하고 함수 폴더를 새로 고칩니다.

+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