为什么整数(Number)在MongoDb中保存为Double

Vin*_*ent 6 double integer mongoose mongodb

我正在开发一个新项目,我试图弄清楚为什么当 Mongoose 保存我的模型时,我得到的是 Double,而不是整数。

\n\n

前任。{myId: 12345678} 变为 {myId: 12345678.0}\xe2\x80\x8b

\n\n

我的架构包含以下内容:

\n\n
{\n myId: {\n  type: Number\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

猫鼬版本:5.x\n节点:10.x

\n\n

任何想法 ?

\n

Joh*_*yHK 6

架构类型Number是浮点型。如果你想将数字存储为整数,可以使用插件mongoose-int32

var Int32 = require('mongoose-int32');
const schema = new mongoose.Schema({
  myId: {
    type: Int32
  }
});
Run Code Online (Sandbox Code Playgroud)

如果您需要 64 位整数支持,请使用该mongoose-long插件。

  • 为什么猫鼬本身不提供该日期类型? (4认同)
  • @Ashish 我也很惊讶数据类型并不是 Mongoose 本身的一部分。特别是该插件的作者是 Mongoose 的主要开发人员之一。 (2认同)