gpt4 book ai didi

node.js - 如何在 Mongoose 中同时更新对象并插入数组

转载 作者:可可西里 更新时间:2023-11-01 10:52:26 28 4
gpt4 key购买 nike

我有一个架构如下

var FriendsSchema = new Schema({
email: {
type: String
}
firstName: String,
lastName: String,
previousEmails:[{
email:{
type:String
}
}],
createdDate:{
type:Date,
default:Date.now
},
updatedDate:{
type:Date,
default:Date.now
}
});

我想做的是,在更新时,如果“电子邮件”发生变化,我想将“电子邮件”字段更新为传入的新值,并将当前的“电子邮件”值推送到'previousEmails' 数组。

我可以通过以下两个步骤完成此操作:1)通过id更新对象,并设置除数组'previousEmails'之外的所有字段2) 如果对象的 'email' 字段被更改,将旧值插入 'previousEmails' 数组。

我的问题是,是否可以一步完成?所以我将 $push 和 $set 作为查询的一部分?

最佳答案

虽然上面的答案很接近。我通过执行以下操作使其工作,这很接近但也添加了上面未包含的 $set

Friend.findOneAndUpdate({_id: req.body.id}, {$set:{email: req.body.email}, $push: { previousEmails: this.email } }
}, {new: true}, function(err, friend){
if (err){
console.log(err);
}
});

关于node.js - 如何在 Mongoose 中同时更新对象并插入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37865649/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com