mongoose
Populacja mangusty
Szukaj…
Składnia
- Query.populate (ścieżka, [wybierz], [model], [dopasuj], [opcje])
Parametry
| Parametr | Wyjaśnienie |
|---|---|
| ścieżka | < Object, String > albo ścieżka do wypełnienia, albo obiekt określający wszystkie parametry |
| [Wybierz] | < Obiekt, Ciąg > Wybór pola dla zapytania o populację (można użyć '-id' aby uwzględnić wszystko oprócz pola id ) |
| [Model] | < Model > Model, którego chcesz użyć dla populacji. Jeśli nie zostanie określony, wypełnia wyszukiwanie modelu według nazwy w polu referencyjnym schematu. |
| [mecz] | < Obiekt > Warunki dla populacji |
| [opcje] | < Obiekt > Opcje zapytania o populację (sortowanie itp.) |
Prosty przykład zaludnienia mangusty
.populate() w Mongoose pozwala zapełnić odwołanie, które masz w bieżącej kolekcji lub dokumencie, informacjami z tej kolekcji. Poprzednie może wydawać się mylące, ale myślę, że przykład pomoże usunąć wszelkie nieporozumienia.
Poniższy kod tworzy dwie kolekcje, User i 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);
Gdybyśmy chcieli zapełnić wszystkie posty dla każdego użytkownika, gdy my .find({}) wszystkich użytkowników, moglibyśmy wykonać następujące czynności:
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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow