【发布时间】:2014-03-27 00:17:12
【问题描述】:
我目前拥有的代码是:
User.findOne(
{
"subUsers.email" : userEmail
},
{
subUsers : {
$elemMatch: {
email : userEmail }
}
},
function(err, user){
if(user){
var information = user.subUsers[0].information.id(id);
information.arrayA.push({someId : "something"});
user.save(callback(err)); // Also tried information.save()
// without luck
}
callback(err);
}
);
这不会返回任何错误,但是当我检查数据库时,新的数组元素还没有被推送(整个文档完好无损)。
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
请发布您的架构。
-
我对mongo不熟悉,但以防万一它与问题有关,
user.save(callback(err));的回调可能在最后callback(err);之后被调用。因此,如果存在user,则回调可能会被调用两次。也许你需要if (user){ ... } else { callback(err); }什么的。 -
我绝对忘记了“其他”。仍然没有保存,但感谢您的提醒。 :)
标签: javascript node.js mongodb mongoose nosql