У меня есть две модели:
- Артикулы
Заказ
Для статьи, которую я написал эту модель:
const mongoose = require('mongoose');
const {Schema} = mongoose;
const ArticlesSchema = new Schema({
name: { type: String, required: true },
price: { type: Number, required: true },
available_quantity: { type: Number, required: true },
})
const Articles = mongoose.model('articles', ArticlesSchema, 'articles');
module.exports = Articles;
Для заказа, который я написал это:
const mongoose = require('mongoose');
const {Schema} = mongoose;
const ArtIdSchema = new Schema({
article_id: {type: Schema.Types.ObjectId, ref: 'articles'},
qty: {type: Number}
});
const OrdersSchema = new Schema({
status: { type: String, required: true },
user: { type: Schema.Types.ObjectId, required: true },
articles: [ArtIdSchema]
})
const Orders = mongoose.model('orders', OrdersSchema, 'orders');
module.exports = Orders;
Мне нужно заполнить "article_id" с реальной статьей так в моем API. js Я написал это:
router.get('/orders/status/:status_id', (req, res, next) => {
Orders.find({status: req.params.status_id}, 'status, articles')
.populate('article_id')
.exec((err, data) => {
if (err) {
return res.status(422).json({
error: 'Your request could not be processed. Please try again.'
});
}
res.status(200).json({
data: data
});
});
});
Но это не работает. Я попытался также заменить .populate('article_id')
на .populate('articles')
, но он не работает.
Я новичок с Mon goose и не могу понять, где это не так.
Спасибо очень за вашу помощь.