mongoose查询子集的子集
首先,我的mongoose的models如下:
var clubsSchema = new mongoose.Schema({
"clubCreatetime": String,
"clubCreater": String,
"clubName": String,
"clubDescription": String,
"clubImage": String,
"clubMenbers": [String],
"clubTopics": [{
"topicCreatetime": String,
"topicCreater": String,
"topicTitle": String,
"topicContent": String,
"topicComment": [{
"userId": String,
"userName": String,
"commentCreatetime": String,
"commentContent": String
}],
"topicLike": [String],
"topicState": String
}],
"clubState": String
})
然后,我的代码如下:
let orgId = req.param("orgId");
let topicId = req.param("topicId");
Club.findOne({
_id: orgId
}, function(clubErr, clubDoc){
//console.log(clubDoc);
if(clubErr){
res.json({
status: '1',
msg: clubErr.message,
result: '查找该社团失败!'
})
} else {
clubDoc.clubTopics.findOne({
_id: topicId
}, function(topicErr, topicDoc){
console.log(topicDoc);
if(topicErr){
res.json({
status: '1',
msg: topicErr.message,
result: '查找该话题失败!'
})
} else {
res.json({
status:'0',
msg: '查找该话题成功!',
result: topicDoc
})
}
})
}
})
在这里,我是想通过路由中的社团Id,先找到该社团;然后在根据路由中的话题Id,去查询该话题全部内容。但是,它提示我.findOne()这方法不存在,所以想求教下,我要根据id查询社团下的该话题,要怎么写呢?谢谢!
目前想到的返回话题信息的方法是:
for(let i=0; i<clubDoc.clubTopics.length; i++){
if(clubDoc.clubTopics[i]._id==topicId){
console.log(clubDoc.clubTopics[i]);
}
}
想问下mongoose有没有更直接的方法???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以给clubTopics建一个模型,社团里存id,ref指向clubTopics这个集合,查询的时候用populate填充
http://mongoosejs.com/docs/po...