python - 如何使用 Pymongo 将两个字段的值传递到函数中?

标签 python mongodb pymongo

我需要使用pymongo进行查询。在查询中,我需要将两个字段传递到我定义的函数中。如果函数的返回值为True,则将选择文档。这是示例:

文档的数据:

{"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 做到这一点?

最佳答案

用 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)

关于python - 如何使用 Pymongo 将两个字段的值传递到函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47420953/

相关文章:

linux - 在同一台服务器上运行的 2 个 MongoDB 实例可以指向同一个数据文件夹吗?

php - 现在 MongoDB 时间戳

python - pymongo find() 与 find()[:]?

python - 如何矢量化轨迹段之间的点积

python - 在 css 中使用 Django 数字变量

python - 如何使用 python 向当前终端历史记录添加命令?

mongodb - TypeError : datetime. datetime() 不可 JSON 序列化

python - 如何从 pandas 数据集中创建网格大小不均匀的热图?

python - 使用 mongo 中的查询结果填充持久集合的建议方法是什么?

带有 $sample 的 MongoDB 聚合非常慢