一个简单的 Mongoose 填充示例
Mongoose 中的 .populate()
允许你使用该集合中的信息填充当前集合或文档中的引用。前一个可能听起来令人困惑,但我认为一个例子将有助于消除任何混乱。
以下代码创建了两个集合,User 和 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);
如果我们想要为所有用户填充每个用户的所有帖子,我们可以执行以下操作:
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);
})