尝试定义架构时收到此错误。
错误:
node_modules/mongoose/lib/plugins/idGetter.js:12
schema.virtual('id').get(idGetter);
TypeError: schema.virtual(...).get is not a function
at module.exports (/Users/g.paradiso/dev/albumin-diet/node_modules/mongoose/lib/plugins/idGetter.js:12:26)
模式:
export const albumSchema = new Schema({
id: {
spotify: String
},
tags: [{ type: Schema.Types.ObjectId, ref: "Tag" }],
}, { timestamps: true });
答案 0 :(得分:0)
引发错误是因为我有一个名为id
的字段,该字段可能覆盖了内部_id
字段。
我决定在以下位置更改架构:
export const albumSchema = new Schema({
publicId: {
spotify: String
},
tags: [{ type: Schema.Types.ObjectId, ref: "Tag" }],
}, { timestamps: true });
答案 1 :(得分:0)
我发现这主要是由定义模式中已经定义的虚拟字段名称引起的。如果您已经在架构中定义了id,则应该在架构中更改定义的属性的名称或更改虚拟字段名称。
例如
export const albumSchema = new Schema({
// changing from id to maybe album_id
id: {
spotify: String
},
tags: [{ type: Schema.Types.ObjectId, ref: "Tag" }],
}, { timestamps: true });
// changing the virtual field name id to maybe spotify_id will also work
schema.virtual('id',{...})