MongoDB是否支持使用本机运算符(而不是$ where和JavaScript)比较同一集合中的两个字段? 我已经查看了similar questions,所有答案都使用了$ where / JavaScript。
MongoDB documentation明确指出:
JavaScript执行速度比本页列出的本机运算符慢,但非常灵活。
我主要关心的是速度,如果可能的话我想使用索引。那么在不使用JavaScript的情况下比较MongoDB中的两个字段呢?
答案 0 :(得分:5)
目前这不可行,但可以通过目前正在开发的新聚合框架(2.1+)实现。此聚合框架是本机的,不依赖于相对较慢的JavaScript执行路径。
有关详细信息,请查看http://www.mongodb.org/display/DOCS/Aggregation+Framework 以及https://jira.mongodb.org/browse/SERVER-447
的进展情况答案 1 :(得分:2)
通过阅读您链接的文档,它看起来并不像MongoDB能够仅使用本机运算符来比较两个文档属性。
也许您可以修改文档本身(和/或保存文档的代码)以包含一个布尔属性,其值由比较得到(提前),然后根据需要简单地查询该新属性。您甚至可以将其编入索引以获得更好的性能。