簡體   English   中英

如何在參考 mongoose 中創建 object id 的數組?

[英]How to create array of object ids in ref mongoose?

我正在嘗試在 post 方法中創建訂單。 我有兩個文件 - 訂單、訂單項。 模式是 -

var OrderSchema = new Schema({
     name: String,
     orderItems : [{ type: Schema.Types.ObjectId, ref: 'orderitems' }]
 });

 var orderItemsSchema = new Schema({
     name: String,
     products : String
 }); 

我的 controller function --

let itemArr: any[] = [];
  req.body.orderItems.map(async (item: { products: any; quantity: any }) => {
    const newOrdeItem = new OrderItems({
      products: item.products,
      quantity: item.quantity,
    });
    const items = await newOrdeItem.save();
   //found ids
    itemArr.push(items._id);
    
  });
   //not found ids
  itemArr.push(items._id);

  const newOrder = new Order({
    orderItems: itemArr,
    phone: req.body.phone,
  });
  const order = await newOrder.save();
  return res.json(order);

我想下訂單。 req.body 數據是——

{
    "orderItems" : [
        {
            "quantity": 3,
            "product" : "Orange"
        },
        {
            "quantity": 2,
            "product" : "Banana"
        }
    ],
    "phone": "+420702241333",
}

我該如何解決這個問題?

我了解您需要從參考中獲取 orderItems 嗎? 如果那你可以使用填充

order.populate('orderItems')

//編輯

首先需要您的 model 從 monngoose 之后進行 insertMany 或保存 fn

   const dbOrders = require('pathOfModel')
   orderResult = await dbOrders.insertMany({
     name : req.body.name || 'Name you need insert in Schema',
     orderItems : itemArr 
   })
  console.log(orderResult) // res.json(orderResult)

暫無
暫無

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

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