需求描述:mongodb中有两个collection,theme存储主题的主要信息,同时包含有产品id的数组,现在想通过产品的详细id找出products中产品的详细信息,应该如何查询呢?或者有更好的设计思想吗?theme(主题){'thmemId':'001','title':'theme1','productsId':[1,2,5]}products(产品){'id':'1','title':'玩具','price':25},{'id':'2','title':'鲜花','price':12},{'id':'5','title':'电脑','price':4000}最终想实现的效果如下:{'thmemId':'001','title':'theme1','productsId':[{'id':'1','title':'玩具''price':25},{'id':'2','title':'鲜花''price':12},{'id':'5','title':'电脑''price':4000}]}
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
populatevarthemeSchema=Schema({...productsId:[{type:Number,ref:'Products'}]//官方推荐ObjectId});varproductsSchema=Schema({_id:Number,//ObjectId});varTheme=mongoose.model('Theme',themeSchema);varProducts=mongoose.model('Products',productsSchema);Theme.findOne({thmemId:'001'}).populate('productsId').exec(function(err,story){if(err)returnhandleError(err);});使用populate查询处理的数据会到Products查找然后自动填充到productsId里面
添加回答
举报
0/150
提交
取消