mongodb基础学习 (3)

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )

参数说明:

query : update的查询条件,类似sql update查询内where后面的。

update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的

upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

writeConcern :可选,抛出异常的级别。

我们在集合 col 中插入如下数据:

接着我们通过 update() 方法来更新标题(title):

db.col.update({'title':'Mongodb_test'},{$set:{'title':'Mongodb'}})

image-20210423101916732

以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。

>db.col.update({'title':'MongoDB'},{$set:{'title':'MongoDB'}},{multi:true})

save方法

save() 方法通过传入的文档来替换已有文档。语法格式如下:

db.collection.save( <document>, { writeConcern: <document> } )

参数说明:

document : 文档数据。

writeConcern :可选,抛出异常的级别。

测试: 这里我们替换id为 ObjectId("60822d2002162bf438740c6e")的文档

db.col.save({"_id" : ObjectId("60822d2002162bf438740c6e"),'title':'Mongodb','description':'Mongodb Nosql','by':'zgrey','url':'www.zgrey',"tags" : [ "mongodb", "test", "zgrey" ], "likes" :123})

image-20210423102407273

更多实例

只更新第一条记录:

db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );

全部更新:

db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );

只添加第一条:

db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );

全部添加加进去:

db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );

全部更新:

db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );

只更新第一条记录:

db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false ); 用户操作

创建用户

创建一个数据库新用户用db.createUser()方法,如果用户存在则返回一个用户重复错误。

db.createUser(user, writeConcern)

user:这个文档创建关于用户的身份认证和访问信息;

writeConcern:这个文档描述保证MongoDB提供写操作的成功报告。

User文档

user文档,定义了用户的以下形式:

{ user: "<name>", pwd: "<cleartext password>", customData: { <any information> }, roles: [ { role: "<role>", db: "<database>" } | "<role>", ... ] }

user文档字段介绍:

user字段,为新用户的名字;

pwd字段,用户的密码;

cusomData字段,为任意内容,例如可以为用户全名介绍;

roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色;

在roles字段,可以指定内置角色和用户定义的角色。

MongoDB内置角色有如下:

数据库用户角色:read、readWrite;

数据库管理角色:dbAdmin、dbOwner、userAdmin;

集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

备份恢复角色:backup、restore;

所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

超级用户角色:root

// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

内部角色:__system

你可以查看每个角色所拥有的操作权限。

writeConcern文档

w选项:允许的值分别是 1、0、大于1的值、"majority"、;

j选项:确保mongod实例写数据到磁盘上的journal(日志),这可以确保mongd以外关闭不会丢失数据。设置true启用。

wtimeout:指定一个时间限制,以毫秒为单位。wtimeout只适用于w值大于1。

示例

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsffxx.html