如何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 })