【问题标题】:Mongoose does not seem to recognize the Number typeMongoose 似乎无法识别 Number 类型
【发布时间】: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); 行,它不会出错,但如果不定义模型我就无法工作!

【问题讨论】:

    标签: mongodb mongoose


    【解决方案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 类型,这是教科书错误。

    这让我觉得我错过了一些东西,因为我正在尝试学习猫鼬的新技巧,并且我无法按照他们提供的方式运行示例。

    【讨论】:

      猜你喜欢
      • 2011-01-12
      • 1970-01-01
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 2017-04-27
      • 1970-01-01
      相关资源
      最近更新 更多