如何使用nodejs从我的数据模型中的嵌套对象填充mongodb中的数据集合?
Posted
技术标签:
【中文标题】如何使用nodejs从我的数据模型中的嵌套对象填充mongodb中的数据集合?【英文标题】:How to populate a data collections in mongodb from a nested object in my data model using nodejs? 【发布时间】:2018-06-23 17:05:01 【问题描述】:这些是我的数据模型:
var campSchema = new mongoose.Schema(
image : String,
description : String,
comment: [
type: mongoose.Schema.Types.ObjectId,
ref: "Comment"
],
feeds : [
type: mongoose.Schema.Types.ObjectId,
ref: "Feed"
]
);
和:
var feedSchema = new mongoose.Schema(
text : String,
createdAt: type: Date, default: Date.now ,
author :
id:
type: mongoose.Schema.Types.ObjectId,
ref: "User"
,
username: String
,
comment: [
type: mongoose.Schema.Types.ObjectId,
ref: "Comment"
]
);
这是我的 nodejs 请求,它没有将 cmets 填充到我的模板中:
app.get("/feeds", isLoggedIn, function(req, res)
console.log(req.user);
Camp.find().populate("feeds").populate("feeds.comment").exec(function(err, myCamp)
if(err)
console.log(err);
else
myCamp.forEach(function(camp)
if(camp.address === req.user.address)
console.log(building);
res.render("feeds/feeds", building : building);
);
);
);
这是行不通的!我想将 Feeds 数据模型中的 cmets 填充到我的模板中。 如果有人可以提供帮助,我将不胜感激,谢谢。
【问题讨论】:
您好,请查看链接 1) ***.com/questions/28179720/…。 2)***.com/questions/19222520/…。 Mongoose 4.5 及更高版本支持... 【参考方案1】:你应该把代码改成
.populate(
path: 'feeds',
model: 'Feed',
populate:
path: 'comment',
model: 'Comment'
)
最好使用mongoose-deep-populate 插件,它可以帮助您轻松完成。
【讨论】:
以上是关于如何使用nodejs从我的数据模型中的嵌套对象填充mongodb中的数据集合?的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose/Nodejs - 填充函数仅返回用户的对象 ID