Buscar..


Sintaxis

  • Query.populate (ruta, [seleccionar], [modelo], [coincidir], [opciones])

Parámetros

Parámetro Explicación
camino < Object, String > ya sea la ruta para rellenar o un objeto que especifica todos los parámetros
[seleccionar] < Objeto, Cadena > Selección de campo para la consulta de población (puede usar '-id' para incluir todo menos el campo de id )
[modelo] < Modelo > El modelo que desea utilizar para la población. Si no se especifica, poblar buscará el modelo por el nombre en el campo de referencia del esquema.
[partido] < Objeto > Condiciones para la población
[opciones] < Objeto > Opciones para la consulta de población (ordenación, etc.)

Un simple ejemplo de mangosta

.populate() en Mongoose le permite llenar una referencia que tenga en su colección o documento actual con la información de esa colección. Lo anterior puede parecer confuso, pero creo que un ejemplo ayudará a aclarar cualquier confusión.

El siguiente código crea dos colecciones, Usuario y Publicación:

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 quisiéramos rellenar todas las publicaciones para cada usuario cuando .find({}) todos los Usuarios, podríamos hacer lo siguiente:

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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow