mongodb - 为什么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),
})
我做错了什么?
解决方案
好吧,在我看来,你不需要使用 Double。
据我所知,猫鼬模式中有“数字”类型,它可以是双精度、数字等。
所以使用 Number 而不是 Double。
const test = new mongoose.Schema({
values:Number
})
但在你的情况下,你应该像这样使用。
const test = new mongoose.Schema({
values:[Number]
})
推荐阅读
- tensorflow - Tensorflow:加载未知的 TFRecord 数据集
- html - 反转网格中特定行的方向
- angular - 以角度收听第三方库广播的事件
- email - 从 Talend 中的 csv 文件发送到地址的电子邮件(一次)
- python - 如何阻止 Tkinter 从 while 循环中冻结?
- javascript - Draft.js 和装饰器的文本选择错误
- java - 使用 REST 和 java 处理大量大型 Http 请求
- react-native - 在本机反应中调用状态数组中组件的函数
- delphi - 文本方法不适用于 Findclass(...) 但纯“TEdit”
- integration - 如何为新的 Okta 应用集成添加自定义字段?