--noscripting 不阻止脚本
--noscripting not preventing scripting
我已经使用 --noscripting
选项启动了我的 MongoDB 服务器:
mongod --dbpath C:\MongoData --noscripting
但是,我仍然可以加载 JavaScript 个文件并执行其中的代码:
> load('/Users/d.banks/Documents/mongo-rocks/hello-world.js')
true
> Hello('Dave')
Hello Dave!
我认为脚本是 运行 因为它是客户端?
如果是这样,什么决定脚本是客户端还是服务器端?如果不是,为什么脚本是运行?
这个...
load('/Users/d.banks/Documents/mongo-rocks/hello-world.js')
... 是客户端脚本的示例。它是客户端,因为它在客户端运行。
启动选项 --noscripting
禁用服务器端脚本,即在服务器上运行的 Javascript。这方面的例子包括
$where
:$where
是在服务器端执行的 JavaScript 表达式或函数
$group
:$reduce
、$keyf
和 finalize
参数是 Javascript 在服务器端执行的函数
$mapreduce
:map
和 reduce
参数是 Javascript 在服务器端执行的函数
所以,总而言之,--noscripting
禁用服务器端脚本,它对客户端脚本没有影响。服务器端脚本是那些在服务器上执行的脚本,上面列出的三个是主要示例。
我已经使用 --noscripting
选项启动了我的 MongoDB 服务器:
mongod --dbpath C:\MongoData --noscripting
但是,我仍然可以加载 JavaScript 个文件并执行其中的代码:
> load('/Users/d.banks/Documents/mongo-rocks/hello-world.js')
true
> Hello('Dave')
Hello Dave!
我认为脚本是 运行 因为它是客户端? 如果是这样,什么决定脚本是客户端还是服务器端?如果不是,为什么脚本是运行?
这个...
load('/Users/d.banks/Documents/mongo-rocks/hello-world.js')
... 是客户端脚本的示例。它是客户端,因为它在客户端运行。
启动选项 --noscripting
禁用服务器端脚本,即在服务器上运行的 Javascript。这方面的例子包括
$where
:$where
是在服务器端执行的 JavaScript 表达式或函数$group
:$reduce
、$keyf
和finalize
参数是 Javascript 在服务器端执行的函数$mapreduce
:map
和reduce
参数是 Javascript 在服务器端执行的函数
所以,总而言之,--noscripting
禁用服务器端脚本,它对客户端脚本没有影响。服务器端脚本是那些在服务器上执行的脚本,上面列出的三个是主要示例。