2017-11-21 9 views
1

pymongo으로 문의해야합니다. 쿼리에서는 두 필드를 나에 의해 정의 된 함수로 전달해야합니다. 함수의 반환 값이 True이면 문서가 선택됩니다.두 필드의 값을 Pymongo로 함수에 전달하는 방법은 무엇입니까?

문서의 데이터 : 나는 다음과 같은 함수로 value2value3을 통과해야

{"key1":value1, "key2":value2, "key3":value3, ... , "key10":value10} 

:

def myfunction(value2, value3): 
    # do some geometry calculation, eg. 
    a = float(value2) 
    b = float(value3) 
    result = math.sin(a) * math.cos(b) * math.sin(a - b) 
    return (result <= 0.1) 

을 그래서를 나는 것을 어떻게 할 수 여기에 예입니다 pymongo?

답변

1

자바 스크립트로 myfunction을 다시 작성하고 원래 검색어에 adding a where 절을 사용하여 문서를 필터링하십시오.

clause = ''' 
    function() { 
     var value2 = +this.key2; 
     var value3 = +this.key3; 
     var result = Math.sin(value2) * Math.cos(value3) * Math.sin(value2-value3); 
     return result <= 0.1; 
    } 
''' 

collection = query.where(clause)