Sök…


Syntax

  • Fråga.populera (sökväg, [välj], [modell], [matcha], [alternativ])

parametrar

Parameter Förklaring
väg < Objekt, String > antingen sökvägen som ska fyllas eller ett objekt som anger alla parametrar
[Välj] < Objekt, sträng > Fältval för befolkningsfrågan (kan använda '-id' att inkludera allt utom id fältet)
[modell] < Modell > Modellen du vill använda för populationen. Om den inte anges kommer populationen att slå upp modellen med namnet i schemans ref-fält.
[match] < Objekt > Villkor för befolkningen
[alternativ] < Objekt > Alternativ för befolkningsfrågan (sortera, etc)

Ett enkelt exempel på mongosbefolkning

.populate() i Mongoose kan du fylla i en referens du har i din nuvarande samling eller dokument med informationen från den samlingen. Den föregående kanske låter förvirrande men jag tror att ett exempel kommer att hjälpa till att rensa upp förvirring.

Följande kod skapar två samlingar, User and 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);

Om vi ville fylla i alla inlägg för varje användare när vi .find({}) alla användare kan vi göra följande:

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow