在我的应用我需要找到分类的话,我想这个分类图书猫鼬发现所有然后找到所有其他模式每个
const CategorySchema = mongoose.Schema({
displayname: String,
category: String
});
module.exports = mongoose.model('Category', CategorySchema);
}
const BookSchema = mongoose.Schema({
name: String,
img: String,
category: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Category'
}
});
module.exports = mongoose.model('Books', BookSchema);
我需要这样的
categories = [
{
category: 'News',
books: [{name:'',id''},{}..]
},
{
category: 'Sports',
books: [{name:'',id''},{}..]
}
];
响应所以我的代码看起来像这样
Router.get('/categories/', (req, res) => {
Category.find({}, (err, categories) => {
Promise.all(categories.map(category => {
return Book.find({category: category._id}).then(books => {
return {
category: category,
books: books
};
})
})).then(categories => {
res.json(categories);
})
})
});
请有人知道如果有更好的解决方案,这个查询? 谢谢大家!
您可以用'populate'的方式。 http://mongoosejs.com/docs/populate.html – yBrodsky
再次我没有在你的例子中得到所有类别和他们的书籍,我只有他们的书籍只有1个类别 – Alin
[如何深入猫鼬](https ://sackoverflow.com/questions/41255313/how-to-deep-populate-on-mongoose) – iagowp