javascript - 如何填充嵌套数组引用? Mongoose

标签 javascript mongodb mongoose mongoose-schema mongoose-populate

我发现这篇文章非常接近我的需要,但不知何故我仍然无法让它工作

Populate nested array in 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,它并没有填充整个内容。

有人可以帮我或建议这如何运作吗?

提前致谢

编辑:这是 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是第一级引用,deepnested是第一级引用的引用。

关于javascript - 如何填充嵌套数组引用? Mongoose ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52415979/

相关文章:

javascript - 有没有办法从 json-server 文件生成 swagger.json

mongodb - 如何在 mongo shell 中查看文档字段?

java - 使用 Morphia 在 MongoDB 中存储对象时是否可以更改字段的类型?

php - 将 PHP mongodb findOne 结果转换为旧的关联数组?

node.js - 如何在虚拟上实现DBRef

javascript - 后续错误

javascript - 将单词按正确的顺序放置以通过拖放造句

JavaScript 正则表达式 - 从单词旁边提取数字

node.js - Mongoose /MongoDB : Get second to last document

javascript - 在 Mongoose 外部的函数中返回数据