Пн goose внешний ключ модели api populate - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть две модели:

  1. Артикулы

article model

Заказ

enter image description here

Для статьи, которую я написал эту модель:

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 и не могу понять, где это не так.

Спасибо очень за вашу помощь.

1 Ответ

0 голосов
/ 16 апреля 2020

Я идиот. Я решил с этим:

.populate('article.article_id')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...