【问题标题】:Mongoose - Cast to ObjectId failed, Multiple IDsMongoose - 转换为 ObjectId 失败,多个 ID
【发布时间】:2020-07-23 00:35:41
【问题描述】:
return new SavedMember({
    id: member.id, // ID of the user
    guildId: member.guild.id // ID of the guild
}).save();

给出错误:

  message: 'Cast to ObjectId failed for value "218459216145285121" at path "_id" for model "member"',    
  name: 'CastError',
  model: Model { member }

member.ts

const memberSchema = new Schema({
    _id: Types.ObjectId,
    id: String,
    guildId: String,
    xpMessages: { type: Number, default: 0 },
    warnings: { type: Array, default: [] }
});
...
export const SavedMember = model<MemberDocument>('member', memberSchema);

回购:https://github.com/theADAMJR/2pg-dashboard

【问题讨论】:

    标签: javascript node.js mongodb typescript mongoose


    【解决方案1】:

    基于其他答案here

    Mongoose 默认为您的每个模式分配一个 id 虚拟 getter,它将文档 _id 字段转换为字符串,或者在 ObjectIds 的情况下,返回其 hexString。

    因此,当您尝试添加新文档时,id 属性指的是 _id

    【讨论】:

      猜你喜欢
      • 2018-01-06
      • 1970-01-01
      • 2021-03-14
      • 2013-03-24
      • 2021-09-05
      • 2021-03-09
      • 1970-01-01
      • 2020-04-18
      • 2020-12-16
      相关资源
      最近更新 更多