0

好的,所以这不是一个我期望得到完整答案的问题,但这里......

我目前正在使用 python 驱动程序在 mongo 实例上触发数据,并且在世界上一切都很好。现在我希望能够从 mongo 中提取数据并评估集合中的每条记录。现在我需要将一个脚本传递给这个评估,该脚本将查看数据行,如果满足条件,则返回 true,即

(伪代码)

foreach(row in resultSet)
 if(row.Name=="Chris) return true

return false

现在,我用来评估行中每个项目的脚本应该是具有有限功能/安全权限的沙箱。

换句话说,代码将被评估,我不希望它有权包括外部库、调用远程服务器或访问服务器上的任何文件等......

考虑到这一点,我知道 mongo 使用一种叫做蜘蛛猴的东西(我收集它是一个 JS 评估器)来编写查询。我想知道是否有可能获取 mongo 调用的结果并将其传递给使用蜘蛛猴(以某种方式)评估的 javascript 函数来实现我所追求的?如果是这样,这是否足够安全。

老实说,我在写这个问题,我意识到它听起来很像那些“请帮助,如何编码世界”类型的问题,但任何指针都会有所帮助。

4

1 回答 1

3

你看过$whereMongoDB 中的子句吗?似乎这些几乎可以为您提供您正在寻找的东西。在 PyMongo 中,它看起来像:

db.foo.find().where("some javascript function that will get applied to each document matched by the find")
于 2010-02-18T15:15:54.357 回答