2012-06-11 118 views
0

我有一个mongo集合,它有两个字段“fieldA”和“fieldB”,这两个字段是时间戳,我需要获得所有文档“(fieldB-fieldA)/ 6000> 2” ...所以我正在寻找一些功能,为了做到这一点...mongo减去两个字段

我在一些职位看到函数“$减”,但似乎是在mongo 2.1.x和目前我使用2.0。 x(这是稳定),任何想法如何使用2.0.x做到这一点?或者我需要创建一个新的领域?或者我只能在应用程序方面做到这一点?

顺便说一句,我使用的红宝石蒙戈司机...

+0

也许,地图/减少可能来拯救你 –

回答

1

可以使用$其中运营商指定的查询表达式,如JavaScript。在shell中:

db.myCollection.find({$ where:“(this.fieldB - this.fieldA)/ 6000> 2”});

但是,您应该注意,Javascript执行速度可能非常慢。如果这是一次性查询,$可能是一个好的解决方案。否则,将方程结果存储在单独的字段中是确保查询及时的最佳方法。

在哪里运营商$其他信息: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D

+0

真棒,是的,它的工作...,是的,我注意到,这是相当缓慢的,但它是一个可以接受的时间至少对我来说是...... – markos