Recherche…


Syntaxe

  • Query.populate (path, [select], [model], [match], [options])

Paramètres

Paramètre Explication
chemin < Object, String > soit le chemin à remplir, soit un objet spécifiant tous les paramètres
[sélectionner] < Object, String > Sélection de champ pour la requête de population (peut utiliser '-id' pour inclure tout sauf le champ id )
[modèle] < Modèle > Le modèle que vous souhaitez utiliser pour population.Si le nom n’est pas spécifié, populate recherche le modèle par son nom dans le champ ref du schéma.
[rencontre] < Objet > Conditions pour la population
[options] < Object > Options pour la requête de population (tri, etc.)

Un exemple simple de peuplement mangouste

.populate() dans Mongoose vous permet de remplir une référence que vous avez dans votre collection ou document actuel avec les informations de cette collection. Le précédent peut paraître déroutant mais je pense qu'un exemple aidera à dissiper toute confusion.

Le code suivant crée deux collections, User et Post:

var mongoose = require('mongoose'),
  Schema = mongoose.Schema

var userSchema = Schema({
  name: String,
  age: Number,
  posts: [{ type: Schema.Types.ObjectId, ref: 'Post' }]
});

var PostSchema = Schema({
  user: { type: Schema.Types.ObjectId, ref: 'User' },
  title: String,
  content: String
});

var User = mongoose.model('User', userSchema);
var Post = mongoose.model('Post', postSchema);

Si nous voulions remplir tous les articles pour chaque utilisateur lorsque nous .find({}) tous les utilisateurs, nous pourrions procéder comme suit:

User
  .find({})
  .populate('posts')
  .exec(function(err, users) {
    if(err) console.log(err);
    //this will log all of the users with each of their posts 
    else console.log(users);
  }) 


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow