我在 nodejs 專案中使用 mongoose 來實作資料庫功能。下面是我的模型。
這是 POST 請求:

在 MongoDb 中,資料是這樣保存的:

這里owers陣列是空的。
費用.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;
每當我嘗試插入一些陣列時,陣列都顯示為空。下面是我的代碼:
添加費用.js
const費用 = 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};
有人讓我知道我做錯了什么。
uj5u.com熱心網友回復:

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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/385511.html
