有沒有辦法處理數字,它們以字符串形式存儲,就像mongodb中的整數一樣?MongoDB數據類型處理
例如
{
"someKey" : "45646764646"
}
我想在這個值執行$gte
或$lte
操作,但是這是不可能的,只要對「someKey」的值是一個字符串。我也想避免使用dbcursor並與java進行比較,例如
有沒有辦法處理數字,它們以字符串形式存儲,就像mongodb中的整數一樣?MongoDB數據類型處理
例如
{
"someKey" : "45646764646"
}
我想在這個值執行$gte
或$lte
操作,但是這是不可能的,只要對「someKey」的值是一個字符串。我也想避免使用dbcursor並與java進行比較,例如
我會建議,如果可能的話,將字符串轉換爲整數,當你將它們存儲在數據庫中。這可以防止將來的混淆,並且由於存儲差異會節省大量空間。
字符串與數字字符比較不會像數字排序。它會按字典順序排序。 「12345」<「2」這是*不*你想要的。 – 2013-03-19 17:51:38
如果您的字段someKey包含數字,請考慮將其保存爲NumberLong()。您的驅動程序應允許您在應用程序中將該字段表示爲大多數10gen驅動程序中的字符串。
我不認爲你可以在直接查詢中做到這一點。您應該能夠使用地圖縮小或聚合操作將其關閉。如果你需要做這些操作,爲什麼不把它作爲一個整數來存儲呢? – Hersha 2013-03-19 15:34:32