MongoDb快速查询Javascript
我正在阅读该文件: $mod运算符允许您执行快速的模查询,以替换where子句的常见大小写。例如,以下$where查询:MongoDb快速查询Javascript,javascript,mongodb,Javascript,Mongodb,我正在阅读该文件: $mod运算符允许您执行快速的模查询,以替换where子句的常见大小写。例如,以下$where查询: db.things.find( "this.a % 10 == 1") 可替换为: db.things.find( { a : { $mod : [ 10 , 1 ] } } ) 所以我不明白这里的快速是什么意思。性能?我没有对此进行基准测试,但它可能确实意味着性能。显然,“$where”为每个对象执行javascript,但“$mod”是一个mongodb本机操作符,应
db.things.find( "this.a % 10 == 1")
可替换为:
db.things.find( { a : { $mod : [ 10 , 1 ] } } )
所以我不明白这里的快速是什么意思。性能?我没有对此进行基准测试,但它可能确实意味着性能。显然,“$where”为每个对象执行javascript,但“$mod”是一个mongodb本机操作符,应该快得多,因为不需要为每个对象执行任何javascript。还可以查看文档中的以下句子:
Javascript executes more slowly than the native operators listed on this page,
but is very flexible.
mongodb中的任何javascript/regex查询都不能使用索引,而且运行速度很慢。所以,您的问题的答案是肯定的,文档说明了性能
有关服务器端javascript的更多信息,您可以找到您是否知道@Andrew Orsich的索引答案?对于javascript查询,不可能使用索引,因为javascript必须为每个对象求值,而这些对象是通过查询选择的。因此:如果您可以在$mod之类的内置操作符和javascript之间进行选择,javascript应该总是比较慢,因为javascript是针对每个对象计算的,它不能使用索引,而内置操作符只有在mongodb解析查询并使用索引时才计算。这可能会很有趣,以此为基准…谢谢你的回答。再来一次。你说的索引是什么意思?我可以在任何地方阅读吗?我想我不知道是什么。
Javascript executes more slowly than the native operators listed on this page,
but is very flexible.