数据的参考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
发布评论