dans ma demande que je dois trouver des catégories, alors je veux Livres pour cette CatégoriesMongoose Trouver tous puis trouver tous dans d'autres schémas pour chaque
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);
i ont besoin d'une réponse comme celui-ci
categories = [
{
category: 'News',
books: [{name:'',id''},{}..]
},
{
category: 'Sports',
books: [{name:'',id''},{}..]
}
];
donc mon code ressemble à ceci
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);
})
})
});
veuillez s'il vous plaît savoir si vous avez une meilleure solution pour cette requête? merci à tous!
vous pouvez utiliser 'populate'. http://mongoosejs.com/docs/populate.html – yBrodsky
encore je n'obtiens pas toutes les catégories et leurs livres dans votre exemple, je reçois seulement 1 catégorie avec leurs livres – Alin
Copie possible de [Comment peupler profond sur mongoose] (https : //stackoverflow.com/questions/41255313/how-to-deep-populate-on-mongoose) – iagowp