db.collection.update(
{查语句},
{改语句},
{选项options}
)
{选项options}
{upsert:false,multi:false}
参数options用于指定更新文档时的选项,可选值包括:upsert和multi。
upsert可以指定如果数据存在就更新,不存在就创建数据;
upsert为false,不存在,不更新(默认值)
upsert为true,存在则更新,不存在则创建
multi选项指定是否应该更新所有匹配的文档,或者只更新第一个文档(默认行为)。
multi为false,修改1条,(默认值)
multi为true,修改多条
修改 | Mongo/MySQL | 命令 | 含义 |
---|---|---|---|
修改0 | Mongo | db.users.update({查语句},{改语句},{"upsert":True,multi":False}); |
默认只改1个 |
修改0 | Mongo | db.users.updateOne(); |
改1个 |
修改0 | Mongo | db.users.updateMany(); |
改全部 |
修改0 | Mongo | db.users.updateMany({},{$set: {new_co_name: ''}},true,true);; |
全部数据增加一个字段new_co_name,默认字符串 |
修改1 | Mongo | db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true); |
$set修改指定属性 |
修改1 | MySQL | update users set name = 'changeName' where age = 25; |
|
修改2 | Mongo | db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true); |
$inc是在基础上增加的意思 |
修改2 | MySQL | update users set age = age + 50 where name = 'Lisi'; |
|
修改3 | Mongo | db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true); |
$inc是在基础上增加的意思 |
修改3 | MySQL | update users set age = age + 50, name = 'hoho' where name = 'Lisi'; |
|
修改4 | Mongo | db.users.update({age: 25}, {name: 'changeName'}); |
全部age为25的清掉,换成name: ‘changeName’ |
修改5 | Mongo | db.users.update({age: 25}, {$unset: {name: '这里值随便给'}}); |
$unset删除文档指定属性 |
修改列名
db.collectionName.updateMany(
{},
{ $rename: { "oldFieldName": "newFieldName" } }
);
db.collection_name.find({"role": {$ne:""}}).forEach(
function(item){
db.collection_name.update({"_id":item._id},{$set:{"role": item.role + ".png"}})
}
);
查出role不是空的数据,for循环修改