这是默认模式模型:-
const UserSettings = new Schema({
ID: { type: Number, required: true, exists: false, unique : true },
UserID : Number,
Account : {
Name : String,
Email : { type: String, required: "email id is required", exists: false, unique : true },
UserName : String,
isFacebook : {type : Boolean, default : false}
},
Notification : {
Trending : {
isEmail : {type : Boolean, default : true},
isPush : {type : Boolean, default : true},
Button : {
isDaily : {type : Boolean, default : false},
isWeekly : {type : Boolean, default : false},
isOff : {type : Boolean, default : false}
}
},
Recommanded : {
isEmail : {type : Boolean, default : true},
isPush : {type : Boolean, default : true},
Button : {
isDaily : {type : Boolean, default : false},
isWeekly : {type : Boolean, default : false},
isOff : {type : Boolean, default : false}
}
}
}
});
当我保存值时,它将在架构中输入默认字段值,
"Account" : {
"Email" : "ted@gmail.com",
"isFacebook" : true,
"Name" : "ted"
},
"Notification" : {
"Trending" : {
"Button" : {
"isDaily" : false,
"isWeekly" : false,
"isOff" : false
},
"isEmail" : true,
"isPush" : true
},
"Recommanded" : {
"Button" : {
"isDaily" : false,
"isWeekly" : false,
"isOff" : false
},
"isEmail" : true,
"isPush" : true
}
}
在更新情况下,我必须传递选定的参数,例如只需要更新
Account{
Email : "ted1@gmail.com"
},
Notification {
Trending {
isPush : false,
}
}
那我将如何使用mongo更新查询?
我已经尝试过这种解决方案来更新价值,但是它将删除现有价值:-
return UserSettings.updateOne(
{$and: [{ UserID: args.UserID },{ Status : 1 }]},
{ $push : { "Account": args.Account }},
{
upsert: true,
returnNewDocument: true
},
);
还有一个:-
return UserSettings.updateOne(
{$and: [{ UserID: args.UserID },{ Status : 1 }]},
args,
{
upsert: true,
returnNewDocument: true
},
);
答案 0 :(得分:0)
尝试一下:
this.ShowIcon = false;