mongoose document tree 怎么通过查询获取整个文档树
问题:mongoose文档树怎么查询然后生成json对象
schema:
var ImoocSchema = new mongoose.Schema({ id:Number, name:String, url:String, parent:String })
在存入的时候parent是自己根据'course'+id 这样子的,所以我查的时候是从上往下查的。还有就是觉得这样嵌套是有问题的,看着太难看了
生成JSON
exports.getLessondata = function(req,res){
// 在设计数据库的时候就直接将字段设计好,后期查询树形结构数据的时候直接返回整个结构体 var _id = req.body._id; //返回给请求的数据 var data = {}; Imooc.findById(_id,function(err,lesson){ if(err){console.log(err);} var lessonId = 'course'+lesson.id; data.lessonName = lesson.name; data.chapters = [] // 将章节数据写入到需要返回的给请求的data中 Imooc.find({parent:lessonId},function(err,docs){ for(var i = 0; i < docs.length; i++){ var chapterName = docs[i].name data.chapters[i] = {}; data.chapters[i].sections = []; data.chapters[i].name = chapterName; Imooc.find({parent:chapterName},function(err,docss){ if(err){console.log(err);} // console.log(data.chapters[i].sections) for(var j = 0; j < docss.length; j++){ var name = docss[j].name var url = docss[j].url var section = {name:name,url:url} //在我自己做的时候这个地方sections报错:undefined。 data.chapters[i].sections.push(section) } }) } }) })
}
新手渣渣代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
生成javascript对象用
lean()
,自己看一下关于lean()的文档