mongoose
Монгузское население
Поиск…
Синтаксис
- Query.populate (путь, [select], [model], [match], [options])
параметры
| параметр | объяснение |
|---|---|
| дорожка | < Object, String > либо путь для заполнения, либо объект, определяющий все параметры |
| [Выбрать] | < Object, String > Выбор поля для запроса на выборку (можно использовать '-id' для включения всего, кроме поля id ) |
| [Модель] | < Модель > Модель, которую вы хотите использовать для популяции. Если не указано, populate будет искать модель по имени в поле ref Schema. |
| [матч] | < Объект > Условия для населения |
| [опции] | < Object > Параметры для запроса населения (сортировка и т. Д.) |
Пример простого заполнения мангусты
.populate() в Mongoose позволяет вам заполнить ссылку, содержащуюся в вашей текущей коллекции или документе, с информацией из этой коллекции. Предыдущее может показаться запутанным, но я думаю, что пример поможет устранить любую путаницу.
Следующий код создает две коллекции: 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);
Если мы хотим заполнить все сообщения для каждого пользователя, когда мы .find({}) всех пользователей, мы можем сделать следующее:
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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow