2012-06-11 159 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