Python、mongo 和 spider monkey

0 投票
1 回答
728 浏览
提问于 2025-04-15 19:25

好的,这个问题我并不指望能得到完整的答案,但我还是想说说...

我现在正在用一个Python驱动程序向Mongo数据库发送数据,一切都很顺利。现在我想从Mongo中提取数据,并对集合中的每一条记录进行评估。我需要传入一个脚本,这个脚本会查看数据行,如果满足某个条件,就返回真,比如:

(伪代码)

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

return false

我用来评估每一项的脚本应该有一些限制,像是沙盒一样,功能和安全权限都有限。

换句话说,我不想让这个代码有权利去做一些事情,比如引入外部库、调用远程服务器或者访问服务器上的任何文件等等...

考虑到这一点,我知道Mongo使用一种叫做“蜘蛛猴”的东西(我了解到这是一种JavaScript评估器)来编写查询。我在想,是否可以将Mongo调用的结果传递给一个使用蜘蛛猴评估的JavaScript函数,以实现我想要的效果?如果可以,这样做是否足够安全呢?

老实说,我写这个问题的时候意识到它听起来有点像那种“请帮忙,如何编程改变世界”的问题,但任何建议都会很有帮助。

1 个回答

3

你有没有看过MongoDB中的$where条件?看起来这些条件正好能满足你的需求。在PyMongo中,它的写法大概是这样的:

db.foo.find().where("some javascript function that will get applied to each document matched by the find")

撰写回答