如何在 mongodb 中的嵌套数组中添加数据

How to add data inside nested array in mongodb

我在我的 nodejs 中使用 mongoose 来实现数据库功能project.Below 是我的模型。

这是 POST 请求:

在 MongoDb 中,数据是这样保存的:

此处owers数组为空。 expense.js

const mongoose = require('mongoose');

const ExpenseSchema = new mongoose.Schema({

  userid:{
      type: String,
      required: true
  },
  owers:[{
     owerid:{
        type: String
      },
     amt:{
       type: Number  
     }
    }],
  name:{
    type: String,
    required: true
  },
  amount:{
      type: Number,
      require: true
  }
});

const expense = mongoose.model('expense',ExpenseSchema);
module.exports = expense;

每当我试图插入一些东西时,数组显示 empty.Below 是我的代码:

addExpense.js

const expense = require('../models/expense.js');

const addExpense = async (req,res) => {

const {name,amount,owerid,amt} = req.body;
console.log(name + " " + owerid);
const {userid} = req.params;

const expens = new expense({userid,name,amount});

try{
    const data = await expens.save();
    expens.owers.push({"owerid":owerid,"amt":amt});
    res.send({"id":data._id}); 
}
catch(error){
    res.send(error);
}
};

module.exports = {addExpense};

有人告诉我我做错了什么。

Try This
   const {name,amount,owers} = req.body;
        console.log(name + " " + owerid);
        const {userid} = req.params;
        
        const expens = new expense({userid,name,amount});
        
        try{
            const data = await expens.save();
        
           //After you can push multiple data like that
        
          JSON.parse(owers).map((value) => {
            data.owers.push({
                owerid: value.owerid,
                amt: value.amt
            })
        })
        
           data.save()
        
            res.send({"id":data._id}); 
        }
        catch(error){
            res.send(error);
        }