2017-11-21 8 views
1

pymongoで質問する必要があります。クエリでは、私が定義した関数に2つのフィールドを渡す必要があります。関数の戻り値がTrueの場合、文書が選択されます。次に例を示します。2つのフィールドの値をPymongoで関数に渡すにはどうすればよいですか?

ドキュメントのデータ:

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

私は次のように関数にvalue2value3を渡す必要があります:どのように私はそれを行うことができ、

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

Javascriptで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) 
関連する問題