為什麼從shell中寫到document的數字類型會變成float
-
如題,為什麼從shell中寫到document的數字類型會變成float
-
這裡有提到
https://docs.mongodb.com/manual/core/shell-types/
The mongo shell treats all numbers as floating-point values by default.
-
说:
hell中寫到document的數字類型會變成float
shell中的數字都被MongoDB當作是雙精度數。這意味著如果你從資料庫中獲得的是一個32位整數,修改文檔後,將文檔存回資料庫的時候,這個整數也就被換成了浮點數,即便保持這個整數原封不動也會這樣的。
參考:《MongoDB權威指南》第一版
-
請教:
如果想要預設整數,該怎麼調整?
如果想要寫進文檔時,要存進整數,語法是?
如果想要改變文檔裡的 float 為 integer,該怎麼做?
-
2樓同一個網址內有提到,使用 NumberInt()
db.log.insert({'cnt':NumberInt('123')})
-
改變文檔就用 update 重新指定新的值, 明確用 NumberInt() 或 NumberLong() 轉型數值資料
-
很實用的處理方式, 收藏了
-
剛遇到這問題.結果一上來就看到這篇.
剛好解答了我的疑問.
-
我也發現到在開發時很容易會忽略掉型別問題,所以在使用 Robomongo 看資料時都會特別注意