javascript - 在 Node.js 和 MongoDB 上获取基于父数据的引用 ID
问题描述
我正在尝试products
根据orders products
id 获取数据,下面是我的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
我就是这么想的。
谢谢
推荐阅读
- sorting - 将字母出现与比较器进行比较
- python - 当文件准备好时,在 Django 中的 UI 上显示字符串
- java - Mongo/Spring boot 从集合中删除列表中的所有文档
- alexa - Alexa Trivia Skill - 测验
- javascript - 在javascript响应上使用时videojs播放按钮不起作用
- python - Python中的密码验证
- php - DELETE 在 Laravel 数据表中不起作用
- swift - 如何在 iOS 13 的搜索字段上方添加“关闭(下拉)指示器(线)”
- angular - 此构造函数与 Angular 依赖注入不兼容,因为它在参数列表索引 0 处的依赖无效
- python - 格式字符串的参数不足错误