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