首页 > 解决方案 > 为什么mongoose模式类型是double,但是插入值时,mongo中的类型是int32?

问题描述

我正在使用 mongoose-double 为 mongoose 定义 Double 类型。我的架构包含值属性是一个 Double 数组。

在pre-save中间件中,init values是一个有6个项目1000的数组。签入mongo,1000类型是int32

const mongoose = require('mongoose');
require('mongoose-double')(mongoose);

const Double = mongoose.Schema.Types.Double;

const test = new mongoose.Schema({
   values: [Double]
})

test.pre('save', function(next) {
   this.values = new Array(6).fill(1000),
})

我做错了什么?

标签: mongodbmongoose

解决方案


好吧,在我看来,你不需要使用 Double。

据我所知,猫鼬模式中有“数字”类型,它可以是双精度、数字等。

所以使用 Number 而不是 Double。

const test = new mongoose.Schema({
   values:Number
})

但在你的情况下,你应该像这样使用。

const test = new mongoose.Schema({
   values:[Number]
})

推荐阅读