【发布时间】:2014-02-17 00:35:12
【问题描述】:
所以我正在更新猫鼬中用户子文档的属性,但它没有保存到我的数据库中。
这是我的功能:
@User.findOne({'email': email}, (err, user) ->
if err?
callback(err)
else if user?
for account in user['accounts']
if account['account_uuid'] is account_uuid
account.state = "Verified"
user.save((err, updated_user, numberTouched) ->
if err?
console.log err
return callback(err)
else
console.log 'Successfully verified account'
console.log updated_user
return callback(null, 'Successfully verified account')
)
return
callback(new Error('No account for account_uuid'))
)
真正令人沮丧的是updated_user 返回时account.state 属性为“已验证”,而numberTouched 变量返回为1,这意味着1 个文档已受到保存的影响。但是当我检查数据库中的用户文档时,它仍然是“待定”的默认值。
有什么想法吗?
附:我正在使用 MongoLab 的开发数据库。但我不认为问题出在他们身上,因为我可以很好地更新其他属性。
【问题讨论】:
-
啊,实际上没有。添加一个修复它!
-
我无法处理 mongoose 静默失败...
-
我曾经使用 Mongoose 的
.markModified()函数修复了一个类似的问题。它是否也解决了这种情况下的问题? -
您可能想要添加一个答案,并说明您必须采取哪些措施来修复它,因为遇到类似问题的其他人可能会发现这个问题。
-
我最喜欢的另一个无声Mongoose故障:数据库未连接,无连接查询时没有错误。
标签: node.js mongodb coffeescript mongoose