在Mongoose Schema中的另一个数组中写入一个数组

这是mongoose纲要:

var userschema = new mongoose.Schema({ user: String, imagen: [{ tags: [String], }] }); 

我得到这个标签:

 var bodytags = req.body.tags; var tags = tbags.split(" "); 

我从req.body获取标签,并把它们放在一个数组中。 但问题来了:

 var img = usermodel.findOne({ user: req.session.user }, function(err, user){ var img = user.imagen.push({ tags: undefined }); }); 

img.tags.push(标签);

而且,当我收到一个错误,就是types错误TypeError: Cannot call method 'push' of undefined 。 我怎样才能推动我的模式标签数组内的标签数组?

感谢您的提前!

编辑:

这将是我想要的结果:

  { user: randomuser, imagen: [{ tags: ["one", "two", "three" }] } 

而且,例如,如果有两个imagen对象:

  { user: randomuser, imagen: [{ tags: ["one", "two", "three"] }, { tags: ["four", "five", "six"] }] } 

似乎错误可能是由于variables赋值中的不一致造成的。 所以创build了一个独立的例子来testing它的工作原理

  var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/images'); var UserSchema = new mongoose.Schema({ user: String, imagen: [ { tags: [String] } ] }); var User = mongoose.model('User', UserSchema); var newUser = new User({ user: 'Almypal'}); var bodytags = 'Home basic tutor'; var tagarray = bodytags.split(" "); newUser.save(function(err, result){ if(err) { console.log(JSON.stringify(err)); } else { result.imagen.push({ tags: tagarray }); result.save( function(error, data){ if(error){ console.log(JSON.stringify(error)); } else{ console.log(JSON.stringify(data)); } }); } }); 

MongoDB现在有以下文件

  { "_id" : ObjectId("50e84425862a2af616000001"), "imagen" : [ { "tags" : [ "Home", "basic", "tutor" ] } ], "user" : "Almypal" } 

希望这可以帮助。