Mongoose 似乎无法识别 Number 类型
Posted
技术标签:
【中文标题】Mongoose 似乎无法识别 Number 类型【英文标题】:Mongoose does not seem to recognize the Number type 【发布时间】:2020-06-30 23:52:40 【问题描述】:我正在玩猫鼬文档:https://mongoosejs.com/docs/schematypes.html 由于某些我不知道的原因,下面的代码没有运行,它给出了错误:
TypeError: Invalid value for schema path `integerOnly.type`, got value "undefined"
如果我将类型更改为字符串,例如,它可以工作:
var numberSchema = new Schema(
integerOnly:
type: String,
get: v => Math.round(v),
set: v => Math.round(v),
alias: "i"
);
谁能指出发生了什么?我发现 mongoose 文档已经过时了,他们似乎没有更新文档。
下面是mongoose页面中的原始代码。
//--------------------------------------------------
require("./connection");
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
//---------------------------------------------------
var numberSchema = new Schema(
integerOnly:
type: Number,
get: v => Math.round(v),
set: v => Math.round(v),
alias: "i"
);
var Number = mongoose.model("Number", numberSchema);
细节。如果我注释掉var Number = mongoose.model("Number", numberSchema);
行,它不会出错,但如果不定义模型我就无法工作!
【问题讨论】:
【参考方案1】:睡了一晚,我的美容觉,我发现了问题:
var numberSchema = new Schema(
integerOnly:
type: Number,
get: v => Math.round(v),
set: v => Math.round(v),
alias: "i"
);
var NumberType = mongoose.model("Number", numberSchema);
var doc = new NumberType();
问题是:我正在定义一个类型,即Number
,已经存在于猫鼬中。
这让我想知道为什么 mongoose 会在他们的教程中有一个带有如此原始错误的示例:我隐藏了 Number 类型,这是教科书错误。
这让我觉得我错过了一些东西,因为我正在尝试学习猫鼬的新技巧,并且我无法按照他们提供的方式运行示例。
【讨论】:
以上是关于Mongoose 似乎无法识别 Number 类型的主要内容,如果未能解决你的问题,请参考以下文章
节点,js - Mongoose - 无法保存地理多边形 - CastError: Cast to number failed