node.js - 在数组 mongodb 中添加另一个项目

标签 node.js mongodb mean-stack

我正在将数据插入数组,但是当我插入数据时,它会覆盖整个数组,这是我用于更新数组的路由器

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 运算符直接执行此操作(查看 here 了解更多信息),但由于您已经先查找文档,因此您可以只执行 user.bloodbank_array.concat(newName);,而不是像现在使用 user.bloodbank_array = newName 那样为数组分配新值。 concat 函数是一个标准的 JS 函数,它在数组末尾插入一个新项目。如需了解更多信息,您可以阅读mozilla article .

关于node.js - 在数组 mongodb 中添加另一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55090019/

相关文章:

javascript - 光滑的 JavaScript 安装在 MEAN 堆栈 ANGULAR 中

javascript - 如何在 mongoose.js 中获取最新和最旧的记录(或者只是它们之间的时间跨度)

node.js - 通过管道发送多个文件

java - 如何使用 Spring Data Mongo DB 对类进行建模来存储具有不同长度字段和类型的嵌套 JSON 文档

mongodb - 无法启动 mongos

node.js - 管理由 API 补丁引起的状态更改

javascript - 试图显示来自 Angularjs Controller 的图像

javascript - Windows 8 上的 Sails.js

javascript - 如何使用 Javascript 创建实时媒体流

javascript - Node.js、Express、MongoDB 和流