Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用mongo查询更新json数组的最佳方法_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 使用mongo查询更新json数组的最佳方法

Node.js 使用mongo查询更新json数组的最佳方法,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,这是我的一个数据库集合中的数据 { "name" : "data1", "email" : "sample@example.com", "amount": '' }, { "name":"data2" "email":"sample2@ex.com", "amount":'' } 我需要写一个post请求来更新字段 我得到一个JSON字段数组,由以下格式的数据组成 { "changes": [ {

这是我的一个数据库集合中的数据

{
    "name" : "data1",
    "email" : "sample@example.com",
    "amount": ''
},
{
    "name":"data2"
    "email":"sample2@ex.com",
    "amount":''
}
我需要写一个post请求来更新字段

我得到一个JSON字段数组,由以下格式的数据组成

{
    "changes": [
        {
            "email":"sample@example.com",
            "amount":2300
        },
        {
            "email":"sample2@ex.com",
            "amount":1900

        }
    ]
}
我需要搜索电子邮件并更新相应金额的数据

例如,在这种情况下,post请求后的数据将是:-

{
    "name" : "data1",
    "email" : "sample@example.com",
    "amount": 2300
},
{
    "name":"data2"
    "email":"sample2@ex.com",
    "amount":1900
}

之所以会出现这种情况,是因为changes对象被指定给一个名为changes的变量

必须通过将changes变量解析为JSON,将JSON对象从changes变量中移除,如下所示:

const change = JSON.parse(changes)

const new_changes = change.changes
基本上,将请求主体设置为JSON,然后使用
点符号访问“changes”父名称
现在使用变量
“new\u changes”
,更新后的代码将正常工作

const change = JSON.parse(changes)

const new_changes = change.changes