5 votes

Le sous-document peut-il être requis dans mongoose?

Est-il possible d'avoir des schémas imbriqués dans mongoose et d'avoir un validateur requis sur les enfants? Quelque chose comme ceci:

const userSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  }
});

const eventSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  host: {
    type: userSchema,
    required: true
  }
});

Je ne trouve rien dans la documentation. Merci.

5voto

Dan Green Points 773

Oui, votre schéma est correct.

La documentation pour le schéma imbriqué de mongoose (Sous-documents) peut être trouvée ici

1voto

Pankaj Jatav Points 515

Vous pouvez utiliser le schéma imbriqué dans Mongoose.

Cela vous donnera également l'ID d'objet sur chaque valeur de sous-schéma également.

1voto

Ciprian B Points 161

Je suppose que vous allez mettre à jour eventSchema avec des sous-documents de type modèle utilisateur. vous pouvez utiliser { runValidators: true} pour la mise à jour.

eventModel.update({ name: 'VOTRE NOM' }, { $push: { host: user } }, { runValidators: true}, function(err) {

})

1voto

Deeksha Sharma Points 19

Required est un validateur ajouté à un schéma ou sous-schéma dans Mongoose (from docs) donc oui, vous pouvez définir le champ required sur true (il est faux par défaut) pour votre sous-schéma ou sous-document dans Mongoose. L'exemple de schéma que vous avez créé est correct.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X