簡體   English   中英

在 Node.js 和 MongoDB 上獲取基於父數據的參考 ID

[英]Get parent data based reference ID on Node.js and MongoDB

我正在嘗試根據orders products ID 獲取products數據,以下是我的Order Model

import mongoose from 'mongoose';

const { ObjectId, String, Number } = mongoose.Schema.Types;

const OrderSchema = new mongoose.Schema({
    user: {
        type: ObjectId,
        ref: "User"
    },
    products: [
        {
            quantity: {
                type: Number,
                default: 1
            },
            product: {
                type: ObjectId,
                ref: "Product"
            }
        }
    ],
    email: {
        type: String,
        required: true
    },
    total: {
        type: Number,
        required: true
    },
    status: {
        type: String,
        required: true,
        default: 'pending',
        enum: ["pending", "delivered"]
    }
},{
    timestamps: true
});

export default mongoose.models.Order || mongoose.model("Order", OrderSchema);

產品 Model:

import mongoose from 'mongoose';

const { String, Number } = mongoose.Schema.Types;

const ProductSchema = new mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    price: {
        type: Number,
        required: true
    },
    productType: {
        type: String,
        required: true
    },
    sku: {
        type: String,
        unique: true
    },
    description: {
        type: String,
        required: true
    },
    mediaUrl: {
        type: String,
        required: true
    }
},{
    timestamps: true
});

export default mongoose.models.Product || mongoose.model('Product', ProductSchema);

所有訂單的查詢如下:

const orders = await Order.find()
    .sort({ createdAt: 'desc' })
    .populate({
        path: "products.product",
        model: "Product"
    });
// console.log(orders)
res.status(200).json({ orders });

這個概念是在創建使用產品 ID 創建的訂單時,我想根據訂單產品 ID 獲取產品。

這樣它就顯示出來了

MongooseError [MissingSchemaError]:尚未為 model“產品”注冊架構。

我該如何解決?

謝謝

Order model 中,您可能會導入Product model 然后在您使用的ref中不帶引號

ref: Product

這就是我的想法。

謝謝

暫無
暫無

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

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