node.js - 如何使用mongodb更新普通数组中的数据

标签 node.js mongodb

我尝试更新正常的数组数据,它已成功更新。但我有疑问。我将 id 传入 put url 并获取 id 来比较数组。它的 id 在那里,它获取数据并存储另一个变量,然后该变量用于改变值。它会自动改变原始数组中的值。任何人都可以解释它是如何可能的

app.js

const courses = [{id:1,product_name:"bourbon"},{id:2,product_name:"bourbon"}]  

router.put('/:id',(req,res) =>
{
    console.log("hello")
    console.log(req.params.id)
    for(let i=0;i<courses.length;i++)
    {
        if(courses[i].id === parseInt(req.params.id))
        {
            let course = courses[i]
            course.name = "hari"

            console.log(courses)
        }
    }

})

我的放置网址
本地主机:3000/woc/1

我得到了输出
[{id:1,product_name:"波本威士忌"},{id:2,product_name:"hari"}]

最佳答案

您需要克隆原始对象。只需使用 let course = {...courses[i]} 或 let course = Object.assign({},courses[i]} 而不是 let course = course[i]

对象的行为与原始数据类型不同。 'course' 变量包含对原始数组中元素的引用。所以改变它就是修改数组中的原始对象。

关于node.js - 如何使用mongodb更新普通数组中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56646413/

相关文章:

javascript - Nodejs 一次触发两个请求

javascript - 使用 dpd -d 启动 MongoDB 失败

node.js - 将数组与包含对象的集合数组进行比较

node.js - passport.session() 中间件有什么作用?

javascript - 使用 Promise/Node

mongodb - 有没有适用于 MongoDB 的 Mac 的优秀数据库管理应用程序?类似于 Sequel Pro?

node.js - 如何使用 mongodb nodejs 驱动程序从文本搜索中仅返回选定的字段

javascript - 如何使用 Mongoose 计算每个国家/地区的重复项数量?

node.js - npm start 不适用于 Gulp js 上的 React 应用程序

javascript - 在没有 index.js 的情况下更改 NPM 入口点