资讯专栏INFORMATION COLUMN

MongoDB ( 三 )高级_状态返回和安全

superPershing / 706人阅读

摘要:应答式写入就会给我们返回结果,结果里面包含的项目很多,这样我们就能更好的进行程序的控制和安全机制的处理。如下这个有用的另外一个用法命令行中使用该命令查看数据库是否连接成功返回表示数据库连接成功是查找并修改的意思。

在操作数据库时,对数据的修改是需要有足够的安全措施的,其实在实际工作中,我们用db.collections.update的时候不多,在修改时我们都会用findAndModify,它可以给我们返回来一些必要的参数,让我们对修改多了很多控制力,控制力的加强也就是对安全的强化能力加强了。

应答时写入

我们之前所学习的都是非应答式的,就是再操作完数据之后,并没有任何回应和返回值。

应答式
写入就会给我们返回结果,结果里面包含的项目很多,这样我们就能更好的进行程序的控制和安全机制的处理。

db.runCommand()

他是数据库运行命令的执行器,执行命令首先就要使用它,因为它在Shell和驱动程序间提供了一致的接口。

db.workmate.update({sex:1},{$set:{money:1000}},false,true)
// false意思是,如果有这个属性就修改,如果没有就不修改,(因为我们要修改的只是)
// true 意思是,如果是true,表示对所有查询结果都做修改
var resultMessage=db.runCommand({getLastError:1}) // 执行完数据库操作后会返回一个对象
// getLastError:1 :表示会返回功能错误

// printjson:表示以json对象的格式输出到控制台。
printjson(resultMessage);// 以json的形式输出

上边的代码,我们修改了所有男士的数据,每个人增加了1000元钱(money),然后用db.runCommand()执行,可以看到执行结果在控制台返回了。如下:

{
        "connectionId" : 1,
        "updatedExisting" : true, // 这个有用
        "n" : 2,
        "syncMillis" : 0,
        "writtenTo" : null,
        "err" : null,
        "ok" : 1
}
// runCommand()的另外一个用法
// 命令行中使用该命令查看数据库是否连接成功
> use login
switched to db login
> db.runCommand({ping: 1});
{ "ok" : 1 }

// 返回{ "ok" : 1 }表示数据库连接成功!!

findAndModify
findAndModify是查找并修改的意思。配置它可以在修改后给我们返回修改的结果。

// 
var myModify={
    findAndModify:"workmate", // 哪个集合
    query:{name:"JSPang"},  // 查询条件
    update:{$set:{age:18}},    // 修改操作
    new:true    //更新完成,需要查看结果,如果为false不进行查看结果
}
var ResultMessage=db.runCommand(myModify);
 
printjson(ResultMessage)

// findAndModify的性能是没有直接使用db.collections.update的性能好,但是在实际工作中都是使用它,毕竟要商用的程序安全性还是比较重要的。

findAndModify属性值:

query是查询选择器,与findOne的查询选择器相同

update是要更新的值,不能与remove同时出现

remove表示删除符合query条件的文档,不能与update同时出现

new为true:返回个性后的文档,false:返回个性前的,默认是false

sort:排序条件,与sort函数的参数一致。

fields:投影操作,与find*的第二个参数一致。

upsert:与update的upsert参数一样。

例如:

db.mongo_book.findAndModify({query:{"code":15409639},
                                     update:{ $set : { catalogStatus : 3}} ,
                                     new:true,
                                     });

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19217.html

相关文章

  • MongoDB ( 五 )高级_管理:用户的创建、删除与修改

    摘要:安装好时,它为我们默认开了一个最高管理权限方便我们管理数据库,我们可以用链接数据库,就是这个原理。这节课我们就学习一下的用户管理。超级账号,超级权限查找用户信息删除用户建权如果正确返回,如果错误返回。。 安装好MongoDB时,它为我们默认开了一个最高管理权限方便我们管理数据库,我们可以用mongo链接数据库,就是这个原理。但在实际开发中并一般不能使用这个用户,因为大家都知道和最高权限...

    linkFly 评论0 收藏0
  • MongoDB的安装与启动(Mac 版)

    摘要:本次讲述安装的当然是免费的社区版。两种安装方法手动安装,需要下载安装包解压编译比较繁琐使用系统的安装,是系统上的包管理工具,类似的。如文章出现有错误,麻烦指出或有相关知识点讨论也十分欢迎 Mac上装MongoDB的官网教程:https://docs.mongodb.com/manu...,英文不错的可以直接看,教程也很清晰。 两种版本 MongoDB有两种版本: 1.(Enterpri...

    keithyau 评论0 收藏0
  • 《聊聊mongodb》系列 了解一下MongoDB插入文档的操作~

    摘要:布尔类型,表示文档是否按照有序或者无序插入,默认是返回参数返回了含有操作状态的对象插入文档成功返回如下对象字段指明了插入文档的总数如果该操作遇到了错误对象将包含该错误信息例子四其它可以向集合中添加文档的方法和选项一起使用的。 上一节介绍了MongoDB的基本的命令,以及结构的了解,这一节的主题是介绍一下MongoDB的插入文档的操作的基础命令的使用,MongoDB当中文档的数据结构和j...

    ityouknow 评论0 收藏0
  • 史上最难PHP笔试题答案

    摘要:支持字符串哈希列表集合有序集合等数据结构,目前不支持事务。是多入口以下关于表驱动法的描述,错误的是表驱动法可以作为复杂继承结构的替代方案,难点在于一个经过深思熟虑的查询表。表驱动法查找无规则分布的数据采用阶梯访问的方法最佳。 1、有关PHP字符串的说法,不对的是: CA、如果一个脚本的编码是ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1。B、PHP的字符串在内部...

    yuxue 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<