首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在示例文档中填充产品数组的oem,category,subcategory:

如何在示例文档中填充产品数组的oem,category,subcategory:
EN

Stack Overflow用户
提问于 2019-05-21 21:14:55
回答 1查看 349关注 0票数 0

这是我的路由器JS,在这里我得到了Mongoose的文档。所以问题是我有这些嵌套的数据,比如oem,类别和子类别,我无法获得完整的细节。我已经试了一个星期了,但是什么都不顺从我。有谁能帮帮我吗?

代码语言:javascript
复制
router.get("/product/:id/:product_id", (req, res) => {


 ProReg.findById(req.params.id)
    .populate({
      path: "products",
      populate: [
        {
          path: "products.oem",
          model: "company",
          select: "companyname"
        },
        {
          path: "category",
          model: "productcategory",
          select: "category"
        },
        {
          path: "subcategory",
          model: "productsubcategory",
          select: "subcategory"
        }
      ]
    })
    .exec(function(err, products) {
      if (err) {
        res.json(err);
      } else {
        res.json(products);
      }
    });
});

这就是我得到的结果

代码语言:javascript
复制
{
"_id": "5cd37f4fcd79b01040124dbc",
"refno1": "klklklkl",
"refno2": "klklklkl",
"date": "2019-05-08T00:00:00.000Z",
"customer": "5c98bb0a42207b16d8fbd3cf",
"customertype": "5c7a1a1d4913fa08ac75c027",
"department": "5cbd67c709aeca1ea480157a",
"products": [],
"__v": 3
}

产品的细节并不是唯一的。现在,我如何获得此产品数据以及oem、类别和子类别的详细信息?

在不填充的情况下,结果如下:

代码语言:javascript
复制
  {
    "_id": "5cd37f4fcd79b01040124dbc",
    "refno1": "klklklkl",
    "refno2": "klklklkl",
    "date": "2019-05-08T00:00:00.000Z",
    "customer": {
        "_id": "5c98bb0a42207b16d8fbd3cf",
        "customername": "Raghav"
    },
    "customertype": {
        "_id": "5c7a1a1d4913fa08ac75c027",
        "customertype": "Government "
    },
    "department": {
        "_id": "5cbd67c709aeca1ea480157a",
        "department": "Hardware"
    },
    "products": [
        {
            "warrantyfrom": "2019-05-09T00:00:00.000Z",
            "warrantyto": "2019-05-30T00:00:00.000Z",
            "oemwarrantyfrom": "2019-05-14T00:00:00.000Z",
            "oemwarrantyto": "2019-05-14T00:00:00.000Z",
            "_id": "5cd37f60cd79b01040124dbd",
            "oem": "5cb6e026042460131454cf45",
            "category": "5c960902e5cf3429e06beb6c",
            "subcategory": "5ca35fbed6e1430df88954a6",
            "modelno": "A123888",
            "serialno": "fdsfdsfs"
        },
        {
            "warrantyfrom": "2019-05-09T00:00:00.000Z",
            "warrantyto": "2019-05-30T00:00:00.000Z",
            "oemwarrantyfrom": "2019-05-14T00:00:00.000Z",
            "oemwarrantyto": "2019-05-14T00:00:00.000Z",
            "_id": "5cd37f65cd79b01040124dbe",
            "oem": "5cb6e026042460131454cf45",
            "category": "5c960902e5cf3429e06beb6c",
            "subcategory": "5ca35fbed6e1430df88954a6",
            "modelno": "A123888",
            "serialno": "eeeeee"
        },
        {
            "warrantyfrom": "2019-05-09T00:00:00.000Z",
            "warrantyto": "2019-05-30T00:00:00.000Z",
            "oemwarrantyfrom": "2019-05-14T00:00:00.000Z",
            "oemwarrantyto": "2019-05-14T00:00:00.000Z",
            "_id": "5cd37f6fcd79b01040124dbf",
            "oem": "5c986a1e9b6bc614b8a551b9",
            "category": "5c960902e5cf3429e06beb6c",
            "subcategory": "5ca35fbed6e1430df88954a6",
            "modelno": "QW123",
            "serialno": "hhhhhh"
        }
    ],
EN

回答 1

Stack Overflow用户

发布于 2019-05-21 23:02:29

你有没有尝试过这样做呢?

代码语言:javascript
复制
ProReg.findById(req.params.id)
    .populate('products.oem')
    .populate('products.category')
    .populate('products.subcategory')
    .exec(function(err, products) {
      if (err) {
        res.json(err);
      } else {
        res.json(products);
      }
    });
});

请查看以下相关票证:

Mongoose populate within an object?

Mongoose populate with array of objects containing ref

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56239152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档