**Invalid schema configuration: User is not a valid type at path ref.
MatchList Schema
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const {ObjectId} = mongoose.Schema;
const match = new Schema({
type: ObjectId,
ref:'User'
},{
timestamp:true
});
const matchList = new Schema({
user:{
type: ObjectId,
ref:'User'
},
matches:[match]
},{
timestamp:true
});
const MatchList = mongoose.model('Match',matchList);
module.exports = MatchList;
UserSchema
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
firstname:{
type:String,
required:true
},
lastname:{
type:String,
required:true
},
email:{
type:String,
required:true,
unique:true
},
imgUrl:{
type:String
},
age:{
type:Number,
required:true,
min:16
},
gender:{
type:String,
required:true
},
place:{
type:String,
}
},{
timestamp:true
});
const User = mongoose.model('User',UserSchema);
module.exports = User;
Your UserSchema is totally fine. But, you made a mistake on your MatchList Schema code in line 5. Here is the solution:
MatchList Schema
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const { ObjectId } = mongoose.Schema
const match = new Schema({
user: { // <-- You didn't put variable name here before.
type: ObjectId,
ref: 'User'
}
}, { timestamp: true });
const matchList = new Schema({
user: {
type: ObjectId,
ref: 'User'
},
matches: [match]
}, {
timestamp: true
});
const MatchList = mongoose.model('Match', matchList);
module.exports = MatchList;