16
根据MongoDB documentation,不建议使用服务器端存储的功能。这个警告背后的原因是什么?为什么不推荐在MongoDB中使用服务器端存储的函数?
根据MongoDB documentation,不建议使用服务器端存储的功能。这个警告背后的原因是什么?为什么不推荐在MongoDB中使用服务器端存储的函数?
我相信我已经指出,尽管谷歌的搜索结果几次被只与人告诉你该怎么做填充列表:
eval
eval
具有天然的能力很容易被注入,它就像一个非PDO与SQL平衡,如果你没有在它周围布满一个完整的逃逸库,它会搅乱你。通过使用这些函数,您可以有效地替换MongoDB的更安全的本地语言,使其与任何旧SQL一样不安全。eval
仅适用于初选,从不复制任何其他成员设置$where
。这应该足以让你开始在这方面。
好的,谢谢!关于本声明:“由于前一点,与其他许多选项相比,速度极慢......”。我相信当你写这篇文章的时候,你的意思是读操作很慢,对吧?我的问题是:我对集合中的每个文档都执行了一个函数,而使用mongodb-nodejs-native驱动程序时,read-update-write确实很慢。对此有何想法? – EdMelo 2013-03-27 21:26:59
@EduardoMelo任何操作,JavaScript的执行速度都比C++代码慢,不仅如此,而且它本身并不会放入JS中,也就是说,启动JS enigne,创建一个线程,然后C++代码通过JS函数由引擎运行。嗯,如果它结束了每一个文件,那么它听起来像是一次性的命令,我会通过与主MongoDB相同的服务器上的控制台来执行此操作。 – Sammaye 2013-03-27 23:19:01
锁定/并发性/性能问题仍然有效吗?目前的文档表明,从版本2.4开始,默认的JavaScript引擎现在“允许多个JavaScript操作同时执行”,而不需要获取锁定。 http://docs.mongodb.org/manual/core/server-side-javascript/ – 2013-06-13 16:15:45