問題

這個問題已經有一個答案:

  • 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 NumberLong和簡單Integer之間的MongoDB差異? 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 2個答案 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表
  • 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 如何將Mongo Field值儲存為Long? 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 2個答案 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表

我正在嘗試在我的MongoDB資料庫中新增大量數字,它不起作用.直到2147483647的數字工作正常.在嘗試插入大於2147483647的數字時,我得到負值儲存在資料庫中. 我嘗試了以下內容:

 db.companies.insertOne({valuation: 2147483648})
 

執行時發現我得到以下內容:

 { "_id" : ObjectId("xxx"), "valuation" : -2147483648}
 

如何解決這個問題? 注意:我正在嘗試Shell

  最佳答案

嘗試大於2147483648的數字:

 db.companies.insertOne({valuation: NumberLong("2147483648")})
 

NumberLong()包裝器將數字轉換為64位數而不是32位數.確保將數字傳遞為字串而不是數字,否則Javascript將會建立一個問題,因為它處理數字的方式.

  相同標籤的其他問題

javascriptmongodbshell