【问题标题】:Different schema for same collections in mongoose猫鼬中相同集合的不同模式
【发布时间】:2016-01-27 21:05:34
【问题描述】:

您好,我学习猫鼬的时间很短,所以我有一些问题

我想在同一个集合中使用两个不同的架构 因为有时我只想在repairshopnumber,有时我想arraydata在repairshopnumber

var infoSchema = new models.Schema({
    productnumber: {},
    repairshopnumber: {},
    reservationtimes: [],
    currenttime: Date,
    liftposition: Number,
    user_token: String

});
var ScheduleSchema = new models.Schema({
    productnumber: {},
    repairshopnumber: Number,
    reservationtimes: [],
    currenttime: Date,
    liftposition: Number,
    user_token: String

});
var reservationinfo = models.model('reservations', infoSchema);
var reservationschedule = mongoose.model('reservations', ScheduleSchema);

会发生错误

/home/node/node_modules/mongoose/lib/index.js:334
      throw new mongoose.Error.OverwriteModelError(name);
            ^
OverwriteModelError: Cannot overwrite `reservations` model once compiled.

如何输入?我找不到任何解决方案。

【问题讨论】:

标签: node.js mongodb mongoose


【解决方案1】:

无法为您的集合定义两个架构。正确的做法是将所有这些合并到一个架构中。

在您的架构中,唯一的区别是字段repairshopnumber。要使用arraynumber 类型,您应该将类​​型定义为Mixed

var infoSchema = new models.Schema({
    productnumber: {},
    repairshopnumber: mongoose.Schema.Types.Mixed,
    reservationtimes: [],
    currenttime: Date,
    liftposition: Number,
    user_token: String
});

警告:对于这种类型,数字可能存储在字符串中

【讨论】:

  • 谢谢你,我解决了问题
猜你喜欢
  • 2020-03-27
  • 2016-05-28
  • 2012-10-31
  • 2015-12-18
  • 2020-03-10
  • 2021-12-12
  • 2014-02-21
  • 2016-07-15
  • 1970-01-01
相关资源
最近更新 更多