【发布时间】:2018-09-26 13:10:49
【问题描述】:
我正在尝试执行多个填充,到目前为止,只有最后一个填充正在执行。
这是我的代码,
router.get("/", (req, res, next) => {
Order.find()
.select("product quantity _id")
.populate('product', 'name')
.populate('product', 'price')
.populate('product','productImage')
.exec()
.then(docs => {
res.status(200).json({
count: docs.length,
orders: docs.map(doc => {
return {
_id: doc._id,
product: doc.product,
productImage: doc.productImage,
name: doc.name,
price: doc.price,
quantity: doc.quantity,
request: {
type: "GET",
url: "http://localhost:3000/orders/" + doc._id
}
};
})
});
})
.catch(err => {
res.status(500).json({
error: err
});
});
});
我只得到 productImage。如果我删除 productImage,我会得到一个价格。简而言之,只有最后一个填充有效
我得到这个作为输出
> {
> "count": 2,
> "orders": [
> {
> "_id": "5ba8cb0016e76b50288e67ba",
> "product": {
> "_id": "5ba8c93916e76b50288e67b9"
> },
> "quantity": 2,
> "request": {
> "type": "GET",
> "url": "http://localhost:3000/orders/5ba8cb0016e76b50288e67ba"
> }
> },
> {
> "_id": "5baa1c5c121b9350d309ce6a",
> "product": {
> "_id": "5baa1a96d6fc025019a15287",
> "productImage": "uploads/2018-09-25T11:23:02.744ZScreenshot from 2018-08-07
> 11-27-31.png"
> },
> "quantity": 1,
> "request": {
> "type": "GET",
> "url": "http://localhost:3000/orders/5baa1c5c121b9350d309ce6a"
> }
> }
> ]
【问题讨论】:
-
这是什么填充?它返回了什么?
-
请查看我更新的问题@Sreehari
-
您需要对您的 mongoose 架构提供一些见解,否则每个人都只是在猜测。
标签: node.js express mongoose populate