복붙노트

[MONGODB] MongoDB의에서 저장된 함수를 호출

MONGODB

MongoDB의에서 저장된 함수를 호출

나는 MongoDB를 내 저장된 함수를 호출하는 어려움을 얻고있다. 나는 몽고와 약간의 초보자입니다.

[EDIT] 내 기능 MongoDB에 저장된

function() {
    var cndTime = new Date().getTime() - (3600*1000*24*2); // condition
     db.urls.find(needParse: false).forEach(function(item){
        if(item.date < cndTime)  // check
            db.urls.update({_id: item._id}, {$set: { needParse: true }}); // update field
     });
}

내가 부탁 해요 모든 reactivemongo 또는 네이티브 API를 사용하여이 함수를 호출하는 방법입니다.

해결법

  1. ==============================

    1.첫째는 system.js 컬렉션에 echoFunction라는 함수를 저장하고 db.eval ()를 사용하여 함수를 호출하는 몽고 쉘에서 다음 예를 살펴 보겠습니다 :

    첫째는 system.js 컬렉션에 echoFunction라는 함수를 저장하고 db.eval ()를 사용하여 함수를 호출하는 몽고 쉘에서 다음 예를 살펴 보겠습니다 :

    db.system.js.save({
        _id: "echoFunction",
        value: function (x) {
            return 'echo: ' + x;
        }
    })
    
    db.eval("echoFunction('test')") // -> "echo: test"
    

    echoFunction는 (...) 평가에서 사용할 수 있습니다 / / 맵리 듀스 등 더 많은 정보를 http://docs.mongodb.org/manual/tutorial/store-javascript-function-on-server에서 확인할 경우 $

  2. ==============================

    2.몽고 쉘에서는 현재 데이터베이스에 대한 system.js 모음에 저장된 모든 스크립트를로드 할 수 db.loadServerScripts ()를 사용할 수 있습니다. 로드 된 후에는 다음의 예에서와 같이, 쉘에서 직접 함수를 호출 할 수 있습니다

    몽고 쉘에서는 현재 데이터베이스에 대한 system.js 모음에 저장된 모든 스크립트를로드 할 수 db.loadServerScripts ()를 사용할 수 있습니다. 로드 된 후에는 다음의 예에서와 같이, 쉘에서 직접 함수를 호출 할 수 있습니다

    db.loadServerScripts();
    
    mySampleFunction(3, 5);
    
  3. ==============================

    3.라는 특별한 시스템 모음이 있습니다

    라는 특별한 시스템 모음이 있습니다

    즉, 재사용 자바 스크립트 기능을 저장할 수 있습니다.

    함수를 저장하려면, 당신은을 사용할 수 있습니다

    다음 예제와 같이 :

    db.system.js.save(
     {
         _id: "echoFunction",
         value : function(x) { return x; }
     }
    );
    
    db.system.js.save(
     {
        _id : "myAddFunction" ,
        value : function (x, y){ return x + y; }
     }
    );
    

    _id 필드는 함수의 이름을 보유하고 데이터베이스 당 고유합니다.

    값 필드 함수 정의 보유하고있다.

    몽고 쉘에서는 사용할 수 있습니다

    현재 데이터베이스에 대한 system.js 모음에 저장된 모든 스크립트를로드합니다. 로드 된 후에는 다음의 예에서와 같이, 쉘에서 직접 함수를 호출 할 수 있습니다 :

    db.loadServerScripts();
    
    echoFunction(3);
    
    myAddFunction(3, 5);
    

    출처 : MongoDB의 설명서

  4. ==============================

    4.이 같은 함수를 호출 할 수 있습니다

    이 같은 함수를 호출 할 수 있습니다

    db.loadServerScripts();
    db.data.insert({
       _id: myFunction(5),
        name: "TestStudent"
    });
    

    내 기능은 DB 사용하여 명령에 저장되어있는 경우 :

    db.system.js.save(
     {
      _id : "myFunction" ,
      value : function (x){ return x + 1; }
      });
    
  5. ==============================

    5.나는 당신이 일에 대한 경우 $를 사용할 필요가 있다고 생각! 이 같은:

    나는 당신이 일에 대한 경우 $를 사용할 필요가 있다고 생각! 이 같은:

    db.urls.find( { needParse: false, $where: function(item){
            if(item.date < cndTime)  // check
                db.urls.update({_id: item._id}, {$set: { needParse: true }});
    

    자세한 내용은이 읽기 : https://docs.mongodb.com/manual/reference/operator/query/where/

  6. from https://stackoverflow.com/questions/18185192/call-stored-function-in-mongodb by cc-by-sa and MIT license