使用 mongoose 通过 id 更改嵌套对象的值
change values of nested objects by id with mongoose
我是 MongoDB 的新手,我正在尝试完成一项非常简单的任务,但是我做不好。
我想要的是改变进程状态,但我尝试了“FindAndUpdate”、“UpdateOne”和“FindByIdAndUpdate”,但都不行。
可能跟我的架构有关。我应该为流程创建一个新架构吗?
MongoDB 集合中的我的数据库条目:
_id: 622c98cfc872bcb2578b97a5
username:"foo"
__v:0
process:Array
0: Object
processname:"bar"
process_status:"stopped"
_id: 6230c1a401c66fc025d3cb88
我当前的架构:
const User = new mongoose.Schema(
{
username: { type: String, required: true },
process: [
{
processname: {
type: String,
},
process_status: {
type: String,
},
},
],
},
{ collection: "user-data" }
);
我当前的代码:
const startstopprocess = await User.findByIdAndUpdate(
{ _id: "6230c1a401c66fc025d3cb88" },
{ process_status: "started" }
).then(function (error, result) {
console.log(error);
console.log(result);
});
我是 MongoDB 的新手,我正在尝试完成一项非常简单的任务,但是我做不好。
我想要的是改变进程状态,但我尝试了“FindAndUpdate”、“UpdateOne”和“FindByIdAndUpdate”,但都不行。
可能跟我的架构有关。我应该为流程创建一个新架构吗?
MongoDB 集合中的我的数据库条目:
_id: 622c98cfc872bcb2578b97a5
username:"foo"
__v:0
process:Array
0: Object
processname:"bar"
process_status:"stopped"
_id: 6230c1a401c66fc025d3cb88
我当前的架构:
const User = new mongoose.Schema(
{
username: { type: String, required: true },
process: [
{
processname: {
type: String,
},
process_status: {
type: String,
},
},
],
},
{ collection: "user-data" }
);
我当前的代码:
const startstopprocess = await User.findByIdAndUpdate(
{ _id: "6230c1a401c66fc025d3cb88" },
{ process_status: "started" }
).then(function (error, result) {
console.log(error);
console.log(result);
});