0
mongodbやmongooseにはメソッドがありますので、繰り返しは避けるために条件付きクエリーを作成できます " **ミドルウェアは直接フォーム入力ページ をスキップし、以来、同じ名前を持つミドルウェア を使用せずに、コレクション内の 存在重複を避けるためにメソッドを更新するメソッドの条件を作成するにはどうすればいいですか?
router.get('/page/:id/:username'/foo,
function(req,res){
//How can I bypass this below given code if "User" with same name
//present in collection without using middleware
//Since,middleware directly skips the form filling page
User.findOneAndUpdate({username:req.user.username},
{
$addToSet:{
"messages":{
User:req.params.username,
id:req.params.id
}
}
},
function(err,user) {
if (err) {
throw err;
} else {
res.render("Form");
})
})
//I have to skip the first User.findOneAndUpdate method if it is
//already present
router.post('/page/:id/:username'/foo/post,
function(req,res){
User.findOneAndUpdate({username:req.user.username,
"messages.User":req.pa
rams.username},
{
$push:{
"messages.$.texts":{
message:req.body.message,
username:req.user.username
}
}
},function(err,user){
if (err) {
throw err;
} else {
res.render("Form",{user:user});
}
})
})
//this is what my model look-like
messages:[{
id:{
type : mongoose.Schema.Types.ObjectId,
ref : "User"
},
texts:[{
username:String,
message:String
}],
User:String
}],
私はマングースにクエリの形で置くことができる任意の条件はありますか?