mongo减去两个字段

时间:2012-06-11 21:29:51

标签: ruby mongodb

我有一个mongo集合,其中包含两个字段“fieldA”和“fieldB”的文档,这些是时间戳,我需要获取所有文档“(fieldB-fieldA)/ 6000> 2”...所以我一直在寻找一些功能......

我在一些帖子中看到函数“$ subtract”,但似乎是在mongo 2.1.x中,目前我使用的是2.0.x(它是稳定的),任何想法如何用2.0.x做到这一点?或者我需要创建一个新领域吗?或者我只能在申请方面这样做吗?

不过,我正在使用ruby mongo驱动程序......

1 个答案:

答案 0 :(得分:1)

您可以使用$ where运算符将查询表达式指定为Javascript。在shell中:

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

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

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