You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mongoose-Express架构中Float类型未定义及替代类型咨询

解决Mongoose Schema中Float类型报错的替代方案

Mongoose 没有内置的 Float 或 float 类型,这是你报错的核心原因。针对存储如10000000.25这类浮点数值,推荐以下几种替代方案:

  • 使用Number类型(最常用)
    Mongoose的Number类型对应MongoDB底层的Double类型,完全支持存储浮点数值,是最直接的解决方案。示例代码:

    const mongoose = require('mongoose');
    const yourSchema = new mongoose.Schema({
      amount: { type: Number, required: true }
    });
    

    存入10000000.25后,在MongoDB Compass中会显示为Double类型,读取时可直接获取精确的浮点值。

  • 使用Decimal128类型(高精度场景)
    如果涉及金融等对精度要求极高的业务场景,推荐使用Decimal128类型,它能避免普通浮点数的精度丢失问题。示例代码:

    const mongoose = require('mongoose');
    const yourSchema = new mongoose.Schema({
      amount: { type: mongoose.Schema.Types.Decimal128, required: true }
    });
    

    存入时可传入数字或字符串,读取时需调用toString()方法转换为可读格式:

    const doc = await YourModel.findOne();
    const amount = doc.amount.toString(); // 得到"10000000.25"
    

内容的提问来源于stack exchange,提问作者Aarti Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:31:06