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



这是我的路由器js,我在其中收到猫鼬的文档。因此,我拥有这些嵌套数据,例如OEM,类别和子类别,这些数据无法获得全部详细信息。我从一周起就一直在尝试,但没有任何符合我的依从。有人可以帮我吗?

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

这是我得到的结果

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

产品的详细信息不仅是到了。现在,如何获得此产品数据以及OEM,类别和子类别的详细信息?

没有填充的情况,这就是结果:

  {
    "_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"
        }
    ],

您是否尝试这样做?

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

查看这些相关门票:

对象中的杂种填充物?

用包含参考的对象数组

相关内容

最新更新