gpt4 book ai didi

javascript - 如何通过将模式引用推送到用户的数组字段来更新用户对象

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:41 25 4
gpt4 key购买 nike

我的user架构有一个Notifcation对象数组。我想通过电子邮件查找用户,然后通过添加新的通知对象来更新用户的通知字段。我现在拥有的代码不会返回错误,但它也不会使用新通知更新用户的通知字段。

        var notification = { type: data.notification_type, from: socket.request.user._id };
notification = new Notification(notification);

User.update({ email: data.to }, { $push: { notifications: notification } }, function(err, model) {
if (err) console.log(err);
});

用户架构

var UserSchema = new Schema({
firstName: {
type: String,
trim: true,
default: '',
validate: [validateLocalStrategyProperty, 'Please fill in your first name']
},
lastName: {
type: String,
trim: true,
default: '',
validate: [validateLocalStrategyProperty, 'Please fill in your last name']
},
organization: {
type: String,
trim: true,
default: '',
required: 'Please fill in an organization name'
},
position: {
type: String,
trim: true,
default: '',
required: 'Please fill in the title of your position'
},
displayName: {
type: String,
trim: true
},
email: {
type: String,
trim: true,
default: '',
validate: [validateLocalStrategyProperty, 'Please fill in your email'],
match: [/.+\@.+\..+/, 'Please fill a valid email address']
},
username: {
type: String,
unique: 'testing error message',
required: 'Please fill in a username',
trim: true
},
password: {
type: String,
default: '',
validate: [validateLocalStrategyPassword, 'Password should be longer']
},
salt: {
type: String
},
provider: {
type: String,
required: 'Provider is required'
},
providerData: {},
additionalProvidersData: {},
roles: {
type: [{
type: String,
enum: ['user', 'admin']
}],
default: ['user']
},
updated: {
type: Date
},
created: {
type: Date,
default: Date.now
},
/* For reset password */
resetPasswordToken: {
type: String
},
resetPasswordExpires: {
type: Date
},
notifications: [{
type: Schema.ObjectId,
ref: 'Notifcation'
}]
});

最佳答案

您可以使用 findOneAndUpdate 而不仅仅是 update 。首先,您必须找到使用您的条件,然后推送您的通知。我希望这会有所帮助

var notification = { type: data.notification_type, from:      socket.request.user._id };
notification = new Notification(notification);

User.findOneAndUpdate(
{ email: data.to },
{ $push:
{ notifications: notification }
},
function(err, model) {
if (err) console.log(err);
});

关于javascript - 如何通过将模式引用推送到用户的数组字段来更新用户对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36539110/

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