更新mongodb中的现有字段
例如:更新mongodb中的现有字段,mongodb,Mongodb,例如: db.getCollection('user') .update( { "userDetails.username": "ky" }, { "$set": { "active": false, "admin": false,
db.getCollection('user')
.update(
{
"userDetails.username": "ky"
},
{
"$set":
{
"active": false,
"admin": false,
"phone": "08432808"
}
})
在上面的代码中,如果文档没有“活动”字段,mongodb将为您插入该字段。在这种情况下,我希望得到一些错误消息作为回报,我如何才能做到这一点?您可以使用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 }})
}
})
谢谢看起来有点麻烦,尤其是当你有很多字段要更新时。@qed是的,我一点也不喜欢它,你能不能把需求构建到查找中?e、 g.
db.user.update({“userDetails.username”:“ky”,活动:{$exists:true}},{“$set”:{“active”:false})
。你真的需要一个错误吗?