美文网首页
MongoDB 入门系列(六)

MongoDB 入门系列(六)

作者: 郁南 | 来源:发表于2020-07-02 23:01 被阅读0次

状态与安全

db.runCommand( )

它是数据库运行命令的执行器,执行命令首选就要使用它,因为它在Shell和驱动程序间提供了一致的接口。(几乎操作数据库的所有操作,都可以使用runCommand来执行)现在我们试着用runCommand来修改数据库

  1. 新建文件mongodb-14.js输入以下代码
var db = connect('run')
var obj = {
    name: 'runtime'
}

db.ops.insert(obj)

db.ops.update({name: 'runtime'},{$set:{money:1000}},false,true)
var resultMessage=db.runCommand({getLastError:1})
printjson(resultMessage);

print('[SUCCESS]: The obj was inserted successfully.'); 
  1. 打开vscode控制台,执行命令mongo .\mongodb-14.js,可以看到以下输出
PS D:\Code\Test\Others\MongoDB> mongo .\mongodb-14.js
MongoDB shell version v3.4.4
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.4
connecting to: mongodb://127.0.0.1:27017/run
MongoDB server version: 3.4.4
{
        "connectionId" : 12,
        "updatedExisting" : true,
        "n" : 2,
        "syncMillis" : 0,
        "writtenTo" : null,
        "err" : null,
        "ok" : 1
}
[SUCCESS]: The obj was inserted successfully.

上面的json就是状态

  • false:第一句末尾的false是upsert的简写,代表没有此条数据时不增加;
  • true:true是multi的简写,代表修改所有,这两个我们在前边课程已经学过。
  • getLastError:1 :表示返回功能错误,这里的参数很多,如果有兴趣请自行查找学习,这里不作过多介绍。
  • printjson:表示以json对象的格式输出到控制台

db.listCommands( ):查看所有的Commad命令,内容很多,本节只讲解工作中经常使用的内容。

比如我们要查看是否和数据库链接成功了,就可以使用Command命令。

db.runCommand({ping:1})

返回ok:1就代表链接正常。

findAndModify

  1. 把代码修改一下
var db = connect("run");
var obj = {
  name: "runtime",
  age: 10,
  from: "深圳",
};

db.ops.insert(obj);

var myModify = {
  findAndModify: "ops",
  query: { name: "runtime" },
  update: { $set: { age: 18 } },
  new: true, //更新完成,需要查看结果,如果为false不进行查看结果
};
var ResultMessage = db.runCommand(myModify);

printjson(ResultMessage);

print("[SUCCESS]: The obj was inserted successfully.");
  1. 清空之前内容,然后构建一下代码
    (1)清空
> db.ops.drop()
true

(2)构建

PS D:\Code\Test\Others\MongoDB> mongo .\mongodb-14.js
MongoDB shell version v3.4.4
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.4
connecting to: mongodb://127.0.0.1:27017/run
MongoDB server version: 3.4.4
{
        "lastErrorObject" : {
                "updatedExisting" : true,
                "n" : 1
        },
        "value" : {
                "_id" : ObjectId("5efdf5fcb512bcff5e935b0c"),
                "name" : "runtime",
                "age" : 18,
                "from" : "深圳"
        },
        "ok" : 1
}
[SUCCESS]: The obj was inserted successfully.

(3)查询验证

> db.ops.find()
{ "_id" : ObjectId("5efdf5fcb512bcff5e935b0c"), "name" : "runtime", "age" : 18, "from" : "深圳" }

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

findAndModify属性值

  • query:需要查询的条件/文档
  • sort: 进行排序
  • remove:[boolean]是否删除查找到的文档,值填写true,可以删除。
  • new:[boolean]返回更新前的文档还是更新后的文档。
  • fields:需要返回的字段
  • upsert:没有这个值是否增加

相关文章

  • MongoDB 入门系列(六)

    状态与安全 db.runCommand( ) 它是数据库运行命令的执行器,执行命令首选就要使用它,因为它在Shel...

  • MonogoDB入门教程01

    注:本系列教程是自己学习的记录,内容来至 菜鸟教程MongoDB入门教程01MongoDB入门教程02MongoD...

  • MongoDB入门教程03

    注:本系列教程是自己学习的记录,内容来至 菜鸟教程MongoDB入门教程01MongoDB入门教程02MongoD...

  • MongoDB入门教程02

    注:本系列教程是自己学习的记录,内容来至 菜鸟教程MongoDB入门教程01MongoDB入门教程02MongoD...

  • MongoDB入门教程04

    注:本系列教程是自己学习的记录,内容来至 菜鸟教程MongoDB入门教程01MongoDB入门教程02MongoD...

  • MongoDB入门教程05

    注:本系列教程是自己学习的记录,内容来至 菜鸟教程MongoDB入门教程01MongoDB入门教程02MongoD...

  • SpringBoot入门建站全系列(二十六)Mongodb非关系

    SpringBoot入门建站全系列(二十六)Mongodb非关系型数据库的使用 一、概述 MongoDB 是一个基...

  • 《开发者头条》每日精选(8-4)

    系列文章:MongoDB 从入门到精通 codefrom.com by 狗狗侠 from booooom 大数据全...

  • MongoDB教程(初识篇)

    目录一、定义二、安装 系列教程MongoDB教程(入门篇) 一、定义 1、MongoDB是什么 一个基于分布式文件...

  • MongoDB 新手入门 - Aggregation

    本文是 MongoDB 新手入门 系列的第二篇,在本文中,我们将会讲解 MongoDB 的聚合框架,在看完本文后,...

网友评论

      本文标题:MongoDB 入门系列(六)

      本文链接:https://www.haomeiwen.com/subject/qsgdqktx.html