Ricerca…


Sintassi

  • Query.populate (percorso, [seleziona], [modello], [corrispondenza], [opzioni])

Parametri

Parametro Spiegazione
sentiero < Object, String > o il percorso da popolare o un oggetto che specifica tutti i parametri
[selezionare] < Object, String > Selezione del campo per la query della popolazione (possibile utilizzare '-id' per includere tutto tranne il campo id )
[modello] < Modello > Il modello che si desidera utilizzare per la popolazione. Se non specificato, popola cercherà il modello con il nome nel campo di riferimento dello Schema.
[incontro] < Oggetto > Condizioni per la popolazione
[opzioni] < Oggetto > Opzioni per la query della popolazione (ordinamento, ecc.)

Un semplice esempio di mangusta

.populate() in Mongoose ti permette di popolare un riferimento che hai nella tua raccolta o documento corrente con le informazioni di quella raccolta. Il precedente potrebbe sembrare confuso ma penso che un esempio aiuterà a chiarire ogni confusione.

Il codice seguente crea due raccolte, Utente e Posta:

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

Se volessimo popolare tutti i post per ciascun utente quando noi .find({}) tutti gli utenti, potremmo fare quanto segue:

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow