mongoose
Población de mangosta
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