簡體   English   中英

如何填充嵌套數組引用? 貓鼬

[英]how to populate nested array ref? mongoose

我發現這篇帖子非常接近我的需要,但是盡管如此我還是無法使它正常工作

在貓鼬中填充嵌套數組

很難解釋我在說哪種嵌套引用。 我只是從代碼開始

我有一個產品架構

const ProductSchema = new Schema(Object.assign({
    name: {type: String};
});

訂單模式

const OrderSchema = new Schema(Object.assign({
    products: [ {
        product: { type: Schema.Types.ObjectId, ref: 'Products' },
        amount: { type: Number },
        total: { type: Number },
    } ],
});

我試着做

    const order = await Orders.findOne({
        _id: 'orderId39843984203'
    }).populate({
        path: 'products',
        populate: {
            path: 'product'
        }
    });

我嘗試了類似的方法,以及其他一些方法,例如path: products.productpath: products.product._id和類似的方法

但是我能得到的只是_id ,它並沒有填充整個內容。

有人可以幫我一下或提供建議嗎?

提前致謝

編輯:這就是文檔在db中對orderSchema的外觀

{
    "_id": {
        "$oid": "5ba2e2af52f2ff3f4226015c"
    },
    "products": [
        {
            "_id": {
                "$oid": "5ba2e2ac52f22f3f4226015e"
            },
            "amount": 4,
            "total": 2940
        },
        {
            "_id": {
                "$oid": "5ba2e2ac52f2ff3f5226015d"
            },
            "amount": 1,
            "total": 840
        }
    ],
    "createdAt": {
        "$date": "2018-09-19T23:58:36.339Z"
    },
    "updatedAt": {
        "$date": "2018-09-19T23:58:36.505Z"
    },
    "__v": 0
}
.populate({ path: 'nested', populate: { path: 'deepNested' }});

其中nested是第一電平ref和deepnested是REF的第一電平的參考文獻

您應該能夠做到這一點:

const order = await Orders.findOne({
    _id: 'orderId39843984203'
}).populate('products.product')
.exec((error, doc) => doc);

根據用於填充文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM