MongoDB查询比较相同集合中的2个字段而不使用$ where

时间:2012-01-12 14:11:12

标签: mongodb

MongoDB是否支持使用本机运算符(而不是$ where和JavaScript)比较同一集合中的两个字段? 我已经查看了similar questions,所有答案都使用了$ where / JavaScript。

MongoDB documentation明确指出:

  

JavaScript执行速度比本页列出的本机运算符慢,但非常灵活。

我主要关心的是速度,如果可能的话我想使用索引。那么在不使用JavaScript的情况下比较MongoDB中的两个字段呢?

2 个答案:

答案 0 :(得分:5)

目前这不可行,但可以通过目前正在开发的新聚合框架(2.1+)实现。此聚合框架是本机的,不依赖于相对较慢的JavaScript执行路径。

有关详细信息,请查看http://www.mongodb.org/display/DOCS/Aggregation+Framework 以及https://jira.mongodb.org/browse/SERVER-447

的进展情况

答案 1 :(得分:2)

通过阅读您链接的文档,它看起来并不像MongoDB能够仅使用本机运算符来比较两个文档属性。

也许您可以修改文档本身(和/或保存文档的代码)以包含一个布尔属性,其值由比较得到(提前),然后根据需要简单地查询该新属性。您甚至可以将其编入索引以获得更好的性能。