我在貓鼬中有兩個模式:用戶和細節,我想在用戶模型中添加細節模型作為嵌套模式。為了更清楚起見,以下是上面提到的兩個模式。
用戶.js
const mongoose=require("mongoose");
const Schema=mongoose.Schema;
const complaintSchema=require("./Complaint");
const detailSchema=require("./Detail");
const userSchema=new Schema({
username:{type:String,required:true,unique:true},
email:{type:String,required:true,unique:true},
password:{type:String,required:true},
detailsFilled:{type:Boolean,default:false},
details:{type:detailSchema.Schema},
complaints:{type:[complaintSchema.Schema]}
},{timestamps:true});
module.exports=mongoose.model("Users",userSchema);
細節.js
const mongoose=require("mongoose");
const Schema=mongoose.Schema;
const detailSchema=new Schema({
firstname:{type:String,required:true},
lastname:{type:String,required:true},
telephone:{type:Number,required:true},
hostel:{type:String,required:true},
hostelFees:{type:String,required:false},
roomNo:{type:String,required:true},
},{timestamps:true});
module.exports=mongoose.model("Details",detailSchema);
User Schema 中的 detail 欄位應包含每個用戶的單個 Detail Schema 物件(而不是 Detail 物件陣列)。但是 User.js 代碼顯示錯誤:
TypeError: Invalid value for schema path `details.type`, got value "undefined"
有人可以幫我解決這個錯誤。
uj5u.com熱心網友回復:
嘗試這個:
details:{
type:Schema.Types.ObjectId,
ref: "Details"
}
您需要提供欄位的型別,然后在型別之后提供對該欄位的參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/504014.html
上一篇:貓鼬更新多個用戶陣列