如何使用node.js在mongodb中根据条件更新数组中的对象

如何使用node.js在mongodb中根据条件更新数组中的对象,node.js,mongodb,Node.js,Mongodb,我有一个名为“参与”的集合,它是一个包含对象数据的数组,如下所示 我需要根据“MAINID”更新“STATUS”,比如MAINID作为“MAINID”提供:“MRINAP4210011”,因此其“STATUS”更改为“approved” 我试图在下面的方式和卡住 let newvaluesorg = {}; if (Status == 'Approved') {

我有一个名为“参与”的集合,它是一个包含对象数据的数组,如下所示

我需要根据“MAINID”更新“STATUS”,比如MAINID作为“MAINID”提供:“MRINAP4210011”,因此其“STATUS”更改为“approved”

我试图在下面的方式和卡住

                       let newvaluesorg = {};

                            if (Status == 'Approved') {
                                console.log('Username', VZID);

                                newvaluesorg = {
                                    $set: {
                                        MAINID: "MRINAP4210011",
                                        STATUS: "approved"
                                    }
                                };
                                console.log("newvaluesorg newvalue", newvaluesorg);

                                let query1 = {
                                    "MAINID": mainID
                                };
                                client.db(config.Database.DFARM.dbName).collection("Participates").updateOne(query1, {
                                    $set: newvaluesorg
                                }, function (err, result) {
                                    if (err) {
                                        // console.log(err);

                                        let insertError = new Error(500, "Error updating produce to DFARM", err);
                                        let errors = [];
                                        errors.push(insertError);
                                        output.errors = errors;
                                        res.status(500).json(output);

                                    } else {
                                        // console.log(result);
                                        console.log('res', responses)
                                        output.message = "User updated successfully.";
                                        res.status(200).json(output);
                                    }
                                });
  
请建议如何更新它

谢谢

PS:如果要从挂起状态转到已批准状态,请更改“如果条件”

   "ORGANIZATIONS": [{
            "MAINID": "MRINAP4210011",
            "STATUS": "approved"
        }, {
            "MAINID": "MRINAP4210012",
            "STATUS": "Pending"
        }]
试试这个:

               let newvaluesorg = {};

                    if (Status == 'Pending') {
                        console.log('Username', VZID);

                        newvaluesorg = {
                                STATUS: "approved"
                        };
                        console.log("newvaluesorg newvalue", newvaluesorg);

                        let query1 = {
                            "MAINID": mainID
                        };
                        client.db(config.Database.DFARM.dbName).collection("Participates").updateOne(query1, {
                            $set: newvaluesorg
                        }, function (err, result) {
                            if (err) {
                                // console.log(err);

                                let insertError = new Error(500, "Error updating produce to DFARM", err);
                                let errors = [];
                                errors.push(insertError);
                                output.errors = errors;
                                res.status(500).json(output);

                            } else {
                                // console.log(result);
                                console.log('res', responses)
                                output.message = "User updated successfully.";
                                res.status(200).json(output);
                            }
                        });

这回答了你的问题吗?对不起,这对我来说不起作用
               let newvaluesorg = {};

                    if (Status == 'Pending') {
                        console.log('Username', VZID);

                        newvaluesorg = {
                                STATUS: "approved"
                        };
                        console.log("newvaluesorg newvalue", newvaluesorg);

                        let query1 = {
                            "MAINID": mainID
                        };
                        client.db(config.Database.DFARM.dbName).collection("Participates").updateOne(query1, {
                            $set: newvaluesorg
                        }, function (err, result) {
                            if (err) {
                                // console.log(err);

                                let insertError = new Error(500, "Error updating produce to DFARM", err);
                                let errors = [];
                                errors.push(insertError);
                                output.errors = errors;
                                res.status(500).json(output);

                            } else {
                                // console.log(result);
                                console.log('res', responses)
                                output.message = "User updated successfully.";
                                res.status(200).json(output);
                            }
                        });