Zoeken…


Syntaxis

  • Query.populate (pad, [selecteren], [model], [wedstrijd], [opties])

parameters

Parameter Uitleg
pad < Object, String > het te vullen pad of een object dat alle parameters opgeeft
[Select] < Object, String > Veldselectie voor de populatiequery (kan '-id' gebruiken om alles behalve het id veld op te nemen)
[model] < Model > Het model dat u voor de populatie wilt gebruiken. Indien niet gespecificeerd, zal populate het model opzoeken met de naam in het ref-veld van het schema.
[bij elkaar passen] < Object > Voorwaarden voor de bevolking
[Opties] < Object > Opties voor de populatiequery (sorteren, enz.)

Een eenvoudig mangoest bevolkt voorbeeld

.populate() in Mongoose kunt u een verwijzing in uw huidige verzameling of document vullen met de informatie uit die verzameling. Het voorgaande klinkt misschien verwarrend, maar ik denk dat een voorbeeld kan helpen om verwarring op te lossen.

De volgende code maakt twee collecties, Gebruiker en Bericht:

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);

Als we alle berichten voor elke gebruiker .find({}) wanneer we .find({}) alle gebruikers vinden, kunnen we het volgende doen:

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow