node.js - MongoDB 和 Mongoose,保存嵌套的对象数组 - Node.js
问题描述
我正在尝试将嵌套的对象数组保存到我的 MongoDB 集合中,但该应用程序仅将第一个对象保存在嵌套的 BankAccountsArray 中,我尝试使用 .markModified() 方法但没有成功。我已经附上了从前端部分接受的数据+我的模型模式+路线,谢谢你的帮助!
接受的前端数据:
{
companyHoldingPercentage: '10%',
BankAccountsArray: [
{
bankAccountNumber: '32',
bankBranchNumber: '55',
bankName: 'abc'
},
{
bankAccountNumber: '3123',
bankBranchNumber: '412',
bankName: 'cde'
}
]
}
模型:
const mongoose = require("mongoose");
const BankAccountsArraySchema = mongoose.Schema({
bankName: String ,
bankBranchNumber: String ,
bankAccountNumber: String
}
);
const BankAccountsIndexSchema = mongoose.Schema({
companyHoldingPercentage: String ,
BankAccountsArray: [BankAccountsArraySchema]
});
module.exports = mongoose.model(
"bank-accounts-object",
BankAccountsIndexSchema
);
路线:
var express = require("express");
var router = express.Router();
const BankAccountsIndexModel = require("../Models/BankAccountsIndexModel");
router
.route("/BankAccountsIndexRoute")
.get(async (req, res, next) => {
BankAccountsIndexModel.find((err, collection) => {
if (err) {
console.log(err);
} else {
res.json(collection);
}
});
})
.post(async (req, res, next) => {
console.log(req.body);
const {
companyHoldingPercentage,
BankAccountsArray: [{ bankName, bankBranchNumber, bankAccountNumber }],
} = req.body;
try {
const NewBankAccountsIndexModel = new BankAccountsIndexModel({
companyHoldingPercentage,
BankAccountsArray: [{ bankName, bankBranchNumber, bankAccountNumber }],
});
NewBankAccountsIndexModel.markModified(req.body.BankAccountsArray);
NewBankAccountsIndexModel.save();
// res.json(bankAccount);
} catch (err) {
console.error(err.message);
res.status(500).send("Server error");
}
})
module.exports = router;
解决方案
您可以尝试.post()
像这样重构您的端点:
.post(async (req, res, next) => {
try {
let new_bank_account = await BankAccountsIndexModel.create(req.body);
res.status(200).json(new_bank_account);
} catch (err) {
console.error(err.message);
res.status(500).send("Server error");
}
})
推荐阅读
- django-models - AttributeError:“经理”对象没有属性“保存”
- javascript - 无法使用 requestAnimationFrame 显示类似打字机效果的文本
- python - 如果我导入一个模块,编译后的python文件是否会包含模块内部代码的字节码?
- python - 在 Python 中设置轴范围
- java - 使用调度的执行器生成一个新的随机数,然后将该数字作为 Java 中的新时间间隔传递
- c# - 当 WPF “ResourceDictionary Warning 9 Resource not found”没有告诉我资源键时,如何追踪它?
- python - 尝试制作乒乓球运动员时,按向上键会出现错误:一个位置参数,但给出了两个
- python - Django-Rest 框架:如何从下拉列表中排除当前登录的用户
- python - Tkinter第一次点击第一个函数,第二次点击第二个函数
- javascript - 在 react js 中转换为有效的 json 格式