繁体   English   中英

如何在Node.js中的MongoDB中使用填充方法?

[英]How to use populate method with MongoDB in Node.js?

我有以下代码:

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
    });
  }
});

如何使用填充方法以上述语法提供有关产品的更多信息?

在您的订购模式中,您应该设置一个参考:

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...
     });

希望这可以帮助!

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');

populate方法可以在上述的javascript语法中使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM