猫鼬-转换为ObjectId失败,多个ID

时间:2020-04-10 09:17:13

标签: javascript node.js mongodb typescript mongoose

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

1 个答案:

答案 0 :(得分:2)

基于另一个答案here

猫鼬默认情况下为您的每个模式分配一个id虚拟获取器,该方法返回将文档_id字段强制转换为字符串,对于ObjectIds,则返回其hexString。

因此,当您尝试添加新文档时,id属性引用_id