2013-03-19 159 views
0

有沒有辦法處理數字,它們以字符串形式存儲,就像mongodb中的整數一樣?MongoDB數據類型處理

例如

{ 
    "someKey" : "45646764646" 
} 

我想在這個值執行$gte$lte操作,但是這是不可能的,只要對「someKey」的值是一個字符串。我也想避免使用dbcursor並與java進行比較,例如

+0

我不認爲你可以在直接查詢中做到這一點。您應該能夠使用地圖縮小或聚合操作將其關閉。如果你需要做這些操作,爲什麼不把它作爲一個整數來存儲呢? – Hersha 2013-03-19 15:34:32

回答

0

我會建議,如果可能的話,將字符串轉換爲整數,當你將它們存儲在數據庫中。這可以防止將來的混淆,並且由於存儲差異會節省大量空間。

+1

字符串與數字字符比較不會像數字排序。它會按字典順序排序。 「12345」<「2」這是*不*你想要的。 – 2013-03-19 17:51:38

0

如果您的字段someKey包含數字,請考慮將其保存爲NumberLong()。您的驅動程序應允許您在應用程序中將該字段表示爲大多數10gen驅動程序中的字符串。