Javascript 如何在Node.js中使用MongoDB的populate方法?
我有以下代码:Javascript 如何在Node.js中使用MongoDB的populate方法?,javascript,node.js,mongodb,api,express,Javascript,Node.js,Mongodb,Api,Express,我有以下代码: 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, createdOrde
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
});
}
});
如何使用populate方法以上述语法提供有关产品的更多信息?在订单模式中,您应该设置一个参考:
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...
});
希望这有帮助 在订单模式中,您应该设置一个参考:
const mongoose = require('mongoose');
const orderSchema = mongoose.Schema({
// ...,
product: { type: mongoose.Schema.Types.ObjectId, ref: 'Product' }
});
module.exports = mongoose.model('Order', orderSchema);
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');
填充产品:
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语法中使用
populate方法可以在类似上面的javascript语法中使用