Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何填充嵌套数组ref?猫鼬_Javascript_Mongodb_Mongoose_Mongoose Schema_Mongoose Populate - Fatal编程技术网

Javascript 如何填充嵌套数组ref?猫鼬

Javascript 如何填充嵌套数组ref?猫鼬,javascript,mongodb,mongoose,mongoose-schema,mongoose-populate,Javascript,Mongodb,Mongoose,Mongoose Schema,Mongoose Populate,我发现这篇文章非常接近我的需要,但不知何故,我还是无法让它发挥作用 很难解释我说的是什么样的嵌套ref。我只是从代码开始 我有一个产品模式 const ProductSchema = new Schema(Object.assign({ name: {type: String}; }); 顺序模式 const OrderSchema = new Schema(Object.assign({ products: [ { product: { type: Sche

我发现这篇文章非常接近我的需要,但不知何故,我还是无法让它发挥作用

很难解释我说的是什么样的嵌套ref。我只是从代码开始

我有一个产品模式

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.product
path:products.product.\u id
和一些类似的方法

但是我能得到的只是
\u id
,它并没有填充整个东西

谁能帮我一把或给我一个建议,这将如何工作

提前谢谢

编辑:这是文档在db for 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
}

您应该能够通过以下方式完成此操作:

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


其中
nested
是一级参考,而
deepnested
是一级参考。

仍然不走运,我相信我以前也试过,但不管怎样,我又试了一次,但是没有luckI编辑我的帖子,展示了文档的样子。Donno为什么我觉得有些事情不对劲了
.populate({ path: 'nested', populate: { path: 'deepNested' }});