问题
I'm trying to create a schema subdocument but am getting the error listed above, The schemas in question look like this Schema casuing issues
const mongoose = require('mongoose');
const Schema = mongoose.Schema
const CharacterSchema = new Schema();
CharacterSchema.add({
name: {
type: String,
required: true
},
title: {
type: String
},
charcterClass: { // will be limited in form creation
type: String
},
level: {
type: Number
}
});
const Charcter = mongoose.model('User', CharacterSchema);
module.exports = Charcter;
Schema calling schema above
const mongoose = require ('mongoose');
const Schema = mongoose.Schema;
const {CharacterSchema} = require(__dirname +'/CharacterModel.js');
const UserSchema = new Schema()
UserSchema.add({
name: {
type: String,
required: true
} ,
characters: [CharacterSchema]
});
const User = mongoose.model('Character', UserSchema);
module.exports = User;
回答1:
Try to do the import like this way
const {CharacterSchema} = require(__dirname +'/CharacterModel.js').schema;
Adding the .schema
at the end.
This post is related to your issue, you will see the explanation there.
Embedding schemas is giving error
回答2:
UserSchema :
const mongoose = require ('mongoose');
const Schema = mongoose.Schema;
const CharacterSchema = new Schema({
name: {
type: String,
required: true
},
title: {
type: String
},
charcterClass: {
type: String
},
level: {
type: Number
}
});
const UserSchema = new Schema({
name: {
type: String,
required: true
} ,
characters:{
type:[CharacterSchema]
}
});
const User = mongoose.model('User', UserSchema);
module.exports = User;
来源:https://stackoverflow.com/questions/59131840/invalid-schema-configuration-model-is-not-a-valid-type-within-the-array-char