在Node.js和MongoDB上获取基于父数据的参考ID

编程入门 行业动态 更新时间:2024-10-08 18:33:10

在Node.js和MongoDB上获取基于父<a href=https://www.elefans.com/category/jswz/34/1771445.html style=数据的参考ID"/>

在Node.js和MongoDB上获取基于父数据的参考ID

我正在尝试基于products id获取orders products数据,以下是我的Order模型

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

产品型号:

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]:尚未为模型“产品”注册架构。

我该如何解决?

谢谢

回答如下:

Order模型中,您可能会导入Product模型,然后在您使用的ref中不带引号,例如

ref: Product

这就是我的想法。

谢谢

更多推荐

在Node.js和MongoDB上获取基于父数据的参考ID

本文发布于:2024-05-07 21:57:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757436.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据   js   Node   ID   MongoDB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!