MongoDB 入门系列(六)

2020-07-02  本文已影响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就是状态

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属性值

上一篇 下一篇

猜你喜欢

热点阅读