node.js - 在数组 mongodb 中添加另一个项目
问题描述
我正在向数组中插入数据,但是当我插入数据时,它会覆盖整个数组,这是我用于更新数组的路由器
router.put('/editbloodbankarray', function(req, res) {
var editUser = req.body._id;
var newName = req.body.bloodbank_array;
User.findOne({ _id: editUser }, function(err, user) {
if (err) throw err;
user.bloodbank_array = newName;
// Save changes
user.save(function(err) {
if (err) {
res.json({ success: false, message: 'error' });
} else {
res.json({ success: true, message: 'Name has been updated!' });
}
});
});
});
样本文件:
_id:5c8521c377df3158d0555db1,
bloodbank_array:
[
0:"1"
1:"2"
]
例如,当我更新/插入新项目时:3..数组变为:
_id:5c8521c377df3158d0555db1,
bloodbank_array:
[
0:"3"
]
解决方案
您可以使用 $push 运算符直接执行此操作(查看此处了解更多信息),但由于您已经先查找了文档,因此您可以直接执行此操作,user.bloodbank_array.concat(newName);
而不是像现在使用user.bloodbank_array = newName
. concat 函数是一个标准的 JS 函数,它在数组的末尾插入一个新项目。如需更多信息,您可以阅读Mozilla 文章。
推荐阅读
- html - 如何使用输入标签和捕获属性直接在 Web 应用程序上打开相机应用程序?
- ios - 尝试通过 Instagram 访问网站时出现禁止 403 错误
- python - 如何在 iTerm 2(使用 API)中获取和设置窗口、选项卡和会话的标题?
- java - 将数据保存到属性文件后,属性文件中的排序被重新洗牌
- python - Python Dict - 多个实例或“Sub-Dict”问题 - 以编程方式添加项目
- javascript - React Prop 没有价值,无法控制台日志
- sql-server - 另一台计算机上的 SQL Server LocalDB 实例
- r - 传单簇标记间距,或缩小时如何拥有更小的组
- c# - 条件组合框无法正常工作
- kubernetes - 什么是 Kubernetes 的推出?