如何dynamic添加架构中的对象?

我有一个这样的集合 –

var schema= new mongoose.Schema({ username:{type:String}, responses:{type:mongoose.Schema.Types.Mixed} }); 

我在collections中保存一个文档,

 { username:anonymous,responses:{}} 

现在我想要更新到 –

 {username:anonymous,responses:{tst123:{duration:30,res:{}},tet456:{duration:50,res:{}}} 

我想在下面的步骤中更新文档,

1) responses:{}

2) responses:{test123:{},res:{}}

3) responses:{test123:{dur:30,refresh:false},res:{{key1:val1}} }

4) responses:{ test123:{dur:30,refresh:false},res {{key1:val1},key2:val2} }

同样,我想添加test456 ,甚至更多的testing,我该如何实现?

update方法中使用$set操作符,如下所示:

 var schema= new mongoose.Schema({ username: { type: String }, responses: { type: mongoose.Schema.Types.Mixed } }); var Thing = mongoose.model('Thing', schema), query = { 'username': 'anonymous' }, update = { '$set': { 'responses': { 'tst123': { 'duration': 30, 'res': {} }, 'tet456': { 'duration': 50, 'res': {} } } } }, options = { multi: true }; Thing.update(query, update, options, callback); function callback (err, numAffected) { // numAffected is the number of updated documents })