对于模糊的标题感到抱歉,但我想要做的是以下内容: 我有2个猫鼬模特:帖子和用户(可以是帖子的作者)
const Post = new Schema({
title: {type: String, required: true, unique: true},
content: {type: String, required: true},
date_created: {type: Date, required: true, default: Date.now},
authorId: {type: String, required: true}, // ObjectId
author: {type: Schema.Types.Mixed},
page: {type: Boolean, required: true, default: false}
});
post.find()
mongoose向MongoDB发送查询
MongoDB返回文档
根据authorId
属性检索作者的中间件
将找到的用户添加到帖子author
字段
post.find callback
这可能吗?
答案 0 :(得分:1)
是的,mongoose document references and population会为你做这件事。
const Post = new Schema({
// ...
author: {type: mongoose.Schema.Types.ObjectId, required: true, ref: "User"}
});
ref: "User"
告诉Mongoose使用" User"键入对象类型。确保你有一个"用户"用Mongoose定义的模型,否则会失败。
要加载完整的对象图,请使用查询的populate
方法:
Post
.findOne(/* ... */)
.populate('author')
.exec(function (err, story) {
// ...
});
P.S。我在my MongooseJS Fundamentals截屏视频包中详细介绍了这个内容。