我有一個用mongoose實現的mongodb測試模式。如何更新(刪除)嵌套數組中的文檔
var TestSchema = new mongoose.Schema({ exam:[ Exam ] });
var ExamSchema = mongoose.Schema({type:String, questions: [ { question:{ type: ObjectId, ref: 'Question' }, answer:String } ] });
var QuestionSchema = mongoose.Schema({ desciption:String, solution:String });
測試的想法,是一個學生可能會參加一些考試的測試,每次考試都有一個類型名稱(可以是數學或物理)和問題的列表OBJECTID以及相應的回答充滿由學生。
此代碼可以幫助在測試中添加新的問題和答案 TestModel.update({'_ id':pid,'exam.type':type},{'$ push':{'exam (問題):questionsId,'answer':answer}}},options,function(err,ref){if(err){ ,ERR); 回調(ERR,NULL);} 其他{ 的console.log(「添加問題Exam'.green + REF);
回調(NULL,REF);} } ) 它的工作原理以及通過添加,但刪除問題和答案,更新不起作用。
Model.update({'_id':pid,'exam.type':type},{'$pull':{'exam.$.questions':questionId}},options,function(err,ref)
Model.update({'_id':pid,'exam.type':type},{'$pull':{'exam.$.questions.question':questionId}},options,function(err,ref)
Model.update({'_id':pid,'exam.type':type,'exam.questions.question':questionId},{'$pull':{'exam.$.questions.$.question':questionId}},options,function(err,ref)
Model.update({'_id':pid,'exam.type':type,'exam.questions.question':questionId},{'$pull':{'exam.questions.$.question':questionId}},options,function(err,ref)
我嘗試了這些方法,但這些工作