如何解决如何为此链接用例设计MongoDB模式?
因此,我正在设计一个基本的API以学习MongoDB。我有一个Company
,它出售一些Product
。用户可以订购某些东西,它将显示在Order
模型中。但是,当我调用getOrderDetails
解析器时,它将返回null
。
Company
模型的外观如下:
Company {
_id: ID
name: String
productsSold: Product
}
Company
的虚拟数据:
{
{
_id: ObjectId("abc123")
name: "Apple"
productsSold: ObjectId("pro123")
},{
_id: ObjectId("mic123")
name: "Microsoft"
productsSold: ObjectId("pro234")
}
}
Product
模型的外观如下:
Product {
_id: ID
productDetails: [
{
_id: ID
name: String
}
],soldBy: Company
}
Product
的虚拟数据:
{
_id: ObjectId("pro123")
productDetails: [
{
_id: ("iph123")
name: "iPhone11"
}
{
_id: ("ipa123")
name: "iPad Pro"
}
]
soldBy: ObjectId("abc123")
},{
_id: ObjectId("pro234")
productDetails: [
{
_id: ("sur123")
name: "Surface Go"
}
]
soldBy: ObjectId("mic123")
}
Order
模型的外观如下:
Order {
_id: ID
products: [Product]
}
Order
的虚拟数据:
{
_id: ("ord123")
products: [
ObjectId("iph123")
ObjectId("sur123")
]
}
getOrderDetails
解析器如下:
getOrderDetails: async ({orderId},req) => {
const orderInfo = await Order.findOne({_id: orderId});
orderInfo.products.map((product) => {
console.log(product.name);
})
}
Console: null
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com(将#修改为@)