问题: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)
}
})
}
})
})
}
新手渣渣代码
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
生成javascript对象用
lean(),自己看一下关于lean()的文档