Essayer de modéliser une relation entre les collections en incorporant des documents mais lors de la validation dans le schéma et de la définition de "required" sur True, voici l'erreur
une fois que j'ai commenté l'objet requis dans le genre dans le schéma des films, le problème est résolu mais je veux la validation
const Movie = mongoose.model( 'Movies', new mongoose.Schema({ title: { type: String, required: true, trim: true, minlength: 1, maxlength: 255 }, numberInStock: { type: Number, required: true, min: 0, max: 255 }, dailyRentalRate: { type: Number, required: true, min: 0, max: 255 }, genre: genreSchema required: true }) ); const genreSchema = new mongoose.Schema({ name: { type: String, required: true, minlength: 5, maxlength: 50 } });
TypeError: configuration de schéma non valide: True
n'est pas un type valide au chemin required
5 Réponses :
Essayez de donner le message à côté de vrai. Par exemple -> obligatoire: [true, "Title required"]
vous pouvez utiliser des références et utiliser populate lors de la récupération
genre: [{ type: mongoose.Schema.Types.ObjectId, ref: 'genreSchema', required: true }],
Référence: Modèle référencé un à plusieurs Relation entre les documents pour une meilleure conception de schéma
@Omid Ensuite, vous devez écrire une logique pour la valider. Je ne pense pas que vous puissiez créer un document intégré tel que requis. Si vous allez avec des références, c'est possible
Je ne pense pas que ça marche, mais essayez le genre: { genreSchema: genreSchema, required: true }
Veuillez partager le code complet.
Peut-être que la raison principale est que tu n'es pas utilisé
const Movie = mongoose.model( 'Movies', new mongoose.Schema({ title: { type: String, required: true, trim: true, minlength: 1, maxlength: 255 }, numberInStock: { type: Number, required: true, min: 0, max: 255 }, dailyRentalRate: { type: Number, required: true, min: 0, max: 255 }, genre: { ref: 'SchemaName', required: true }, }) );
Vous pouvez faire ça comme ça.
Exportez le modèle de genre en tant que exports.genreSchema = genreSchema
Ensuite, dans le fichier movies.js
, importez le modèle comme import { genreSchema } from './genre.model'
Essayez de faire cela, l'erreur ne viendra pas.
Supprimer required: true
et suivez ceci dans la documentation officielle. Notez la version de mangouste utilisée. J'ai eu la même erreur et je l'ai résolue. Mon erreur a été de faire du sous-document un modèle au lieu de le conserver comme schéma
const childSchema = new Schema({ name: 'string' }); const parentSchema = new Schema({ // Array of subdocuments children: [childSchema], // Single nested subdocuments. Caveat: single nested subdocs only work // in mongoose >= 4.2.0 child: childSchema });
required: true
ressemble à un champ, mais c'est la raison pour laquelle vous obtenez une erreur de configuration de schéma non valide.