例如:
db.getCollection('user')
.update(
{
"userDetails.username": "ky"
},
{
"$set":
{
"active": false,
"admin": false,
"phone": "08432808"
}
})
在上面的代码中,如果文档没有"活动"字段,mongodb将为您插入该字段。我希望在这种情况下得到一些错误信息,我该如何实现呢?
答案 0 :(得分:1)
您可以使用foreach实现类似的操作,过滤要检查的内容,然后在不抛出异常的情况下验证属性是否存在。不能说我是这个的粉丝,我宁愿让应用程序逻辑验证记录是否存在,并决定是否更新或做另一个动作。
db.user.find({"userDetails.username": "ky"}).forEach(function(doc){
if (!doc.hasOwnProperty('active')){
throw "No active property";
}
else{
db.user.update({ _id: doc._id }, { "$set": { "active": false }})
}
})