我使用Node.js
,mongoose
,mongodb
,express
和angular
。 我在一個貓鼬模型中保存了一項調查答覆。許多人會提交特定調查的答覆。當第一個人提交調查答覆時,我想爲該調查創建一個新文檔。當第二,第三......等人提交同一調查的答覆時,我想將數組元素僅添加到以下模式中的答覆數組中。如果文檔的_id已經存在並且在_id不存在的情況下創建新文檔,如何將數組元素推送到數組?
而當第一人提交了一項新的調查我想創建一個新的調查新文檔的答覆。我怎樣才能用貓鼬做到這一點?
我發現Mongoose.js: how to implement create or update?類似的問題。 但是,在這裏我想新的答覆推到答覆的下一個數組索引[]如果_id被發現,否則創建一個新文檔
貓鼬模型:
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var MCQReplySchema = new Schema({
_id : String,
surveyname: String,
replies :[{
replierId : String,
answers : [{
questionId : String,
answer : String
}]
}]
});
module.exports=mongoose.model('MCQReply',MCQReplySchema);
保存數據到數據庫:
router.post("/saveMCQAnswer", function(req, res) {
new MCQReply({
_id : '123',
surveyname: 'sample',
replies :[{
replierId : 'R001',
answers : [{
questionId : 'A001',
answer : 'answer'
}]
}]
}).save(function(err, doc){
if(err) res.json(err);
else
req.flash('success_msg', 'User registered to Database');
res.redirect("/");
});
});
'_id'默認情況下實際上隱含的貓鼬試圖創建一個獨特的'_id' - 見http://mongoosejs.com/docs/guide.html#_id。是否有你想要自己指定ID的具體原因? – GPX
你見過這個http://stackoverflow.com/a/13338758/6048928 – RaR
的可能的複製[Mongoose.js:如何實現創建或更新](http://stackoverflow.com/questions/13337685/mongoose- js-how-to-implement - 創建或更新) – RaR