Как использовать метод заполнения с MongoDB в Node.js? - PullRequest
0 голосов
/ 04 июля 2018

У меня есть следующий код:

const Order = require('../../models/order');
const Product = require('../../models/product');

Order.find({}, '_id product quantity', function(err, result) {
  if (result) {
    const response = {
      count: result.length,
      createdOrder: result.map(function(order) {
        return {
          _id: order._id,
          productId: order.product,
          quantity: order.quantity,
          request: {
            type: 'GET',
            url: 'http://localhost:3000/orders/' + order._id
          }
        }
      })
    };
    res.status(200).json(response);
  } else if (err) {
    console.log(err);
    res.status(404).json({
      error: err
    });
  }
});

Как использовать метод заполнения, чтобы получить больше информации о продукте в приведенном выше синтаксисе?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018
Order.find({}, '_id product quantity', function (err, result) {

        if (result) {
            const response = {
                count: result.length,
                createdOrder: result.map(function (order) {
                    return {
                        _id: order._id,
                        productId: order.product,
                        quantity: order.quantity,
                        request: {
                            type: 'GET',
                            url: 'http://localhost:3000/orders/' + order._id
                        }
                    }

                })
            };

            res.status(200).json(response);
        }
        else if (err) {
            console.log(err);
            res.status(404).json(
                {
                    error: err
                });
        }
}).populate('product', '_id name price');

Метод заполнения можно использовать в синтаксисе javascript, как указано выше.

0 голосов
/ 04 июля 2018

В вашей схеме заказа вы должны установить ссылку:

const mongoose = require('mongoose');

const orderSchema = mongoose.Schema({
  // ...,
  product: { type: mongoose.Schema.Types.ObjectId, ref: 'Product' }

});

module.exports = mongoose.model('Order', orderSchema);

Заполните с продуктом:

Order.find({})
     .populate('product')
     .exec()
     .then(document => {
       // handle the document...
     });

Надеюсь, это поможет!

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