第三部分 管理篇 第九章 MongoDB shell之eval、进程

1、通过eval参数执行指定语句

比如,需要查询test库的t1表中的记录数有多少,常用方法如下:

[[email protected] bin]# ./mongo test

MongoDB shell version: 2.6.6

connecting to: test

> db.t1.count();

0

>

通过命令行eval参数直接执行语句:

[[email protected] bin]# ./mongo test --eval "printjson(db.t1.count())"

MongoDB shell version: 2.6.6

connecting to: test

0

2、执行指定文件中的内容

如果涉及到很多操作后,才能得到结果,那么用eval的方式来做的话是不可能完成的,那么更灵活的执行文件的方式就派上用场了,比如我们仍然要查看test库t1表中的记录数:

t1_count.js就是我们要指定的文件,里面的内容如下:

var totalcount=db.t1.count();

printjson(‘Total count of t1 is:‘+totalcount);

printjson(‘--------------------‘);

下面我们将执行这个文件:

[[email protected] bin]# ./mongo t1_count.js

MongoDB shell version: 2.6.6

connecting to: test

"Total count of t1 is:0"

"--------------------"

大家可以看到最终t1表中的记录数为7,那么一些不必要的说明性文字我们要是不希望出现该怎么办呢?

[[email protected] bin]# ./mongo
--quiet t1_count.js

"Total count of t1 is:0"

"--------------------"

[[email protected] bin]#

通过指定quiet参数,即可以将一些登录信息屏蔽掉,这样可以让结果更加清晰。

3、进程控制

要解决系统的性能问题,此时一般的操作习惯是先查看有哪些进程,然后将异常的进程杀掉,那么MongoDB是怎么处理的呢?

查看活动进程

查看活动进程,便于了解系统正在做什么,以便做下一步的判断:

>db.currentOp();

{inporg:[{"opid":18,"op":"query","ns":"mydb.votes","query":"{score:1.0}","inLock":1}]

}

字段说明:

  • Opid:操作进程号
  • Op:操作类型(查询、更新等)
  • Ns:命名空间,指操作的是哪个对象
  • Query:如果操作类型是查询的话,这里将显示具体的查询内容
  • lockType:锁的类型,指明是读锁还是写锁。

结束进程

如果某个异常是由于某个进程产生的,那么一般都会毫不留情的杀掉这个进程,下面将是这个操作

>db.killOp(1234/*opid*/)

注意:

不要kill内部发起的操作,比如说replica set发起的sync操作等。

----------------------MongoDB系列文章更新--------------------------------

第一部分 基础篇 第一章 走进MongoDB

第一部分 基础篇 第二章 安装MongoDB

第一部分 基础篇 第三章 MongoDB体系结构

第一部分 基础篇 第四章 MongoDB快速入门

第一部分 基础篇 第四章 MongoDB查询

第二部分 应用篇 第五章 MongoDB高级查询

第二部分 应用篇 第六章 MongoDB GridFS

第二部分 应用篇 第七章 MongoDB MapReduce

第三部分 管理篇 第八章 MongoDB服务管理

第三部分 管理篇 第九章 MongoDB shell之系统命令、用户命令

时间: 2024-10-18 21:02:02

第三部分 管理篇 第九章 MongoDB shell之eval、进程的相关文章

第三部分 管理篇 第九章 MongoDB shell之系统命令、用户命令

1.命令操作 MongoDB Shell不仅仅是一个交互式的shell,它页支持执行指定JavaScript文件,也支持执行指定的命令片段,有了这个特性,就可以将MongoDB与Linux shell完美结合,完成大部分的日常管理和维护工作.Shell命令其实控制台底层的查询语句都是用JavaScript脚本完成的. 系统相关 1.1.help查看命令 [[email protected] bin]# ./mongo MongoDB shell version: 2.6.6 connecting

第九章、shell脚本编程基础

第九章.shell脚本编程基础 本章内容 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言: 低级:汇编 高级: 编译:高级语言-->编译器-->目标代码 java,C# 解释:高级语言-->解释器-->机器代码 shell, perl, python (系统后台

第三部分 管理篇 第八章 MongoDB服务管理

1.数据导出 mongoexport 在日常的数据库管理中经常会遇到导入导出数据的需求,下面就介绍实用工具mongoexport和mongoimport的使用方法,假设库里有一张user表,里面有2条记录,我们将到导出. > db.user.insert({username:"Jerry",age:100}); WriteResult({ "nInserted" : 1 }) > db.user.insert({username:"Tom&qu

第五部分 架构篇 第十四章 MongoDB Replica Sets 架构(自动故障转移/读写分离实践)

说明:该篇内容部分来自红丸编写的MongoDB实战文章. 1.简介 MongoDB支持在多个机器中通过异步复制达到故障转移和实现冗余,多机器中同一时刻只有一台是用于写操作,正是由于这个情况,为了MongoDB提供了数据一致性的保障,担当primary角色的服务能把读操作分发给Slave(详情请看前两篇关于Replica Set成员组成和理解). MongoDB高可用分为两种: Master-Slave主从复制:只需要在某一个服务启动时加上-master参数,而另外一个服务加上-slave与-so

第四部分 性能篇 第十一章 MongoDB 性能监控

声明:该文章主要来自<MongoDB实战>一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用. 1.MongoStat 此工具可以快速的查看某组运行中的MongoDB实例的统计信息,用法如下: [[email protected] bin]# ./mongostat connected to: 127.0.0.1 insert query update delete g

第五部分 架构篇 第十二章 MongoDB Replica Sets 架构(简介)

1.Replication简介 MongoDB Replication即是在多个服务器中同步复制数据,数据复制的目的为提供冗余和提高数据的可用性,数据复制的操作即在不同的数据库服务器上保存多份复制的数据集,以此来避免单机故障进而丢失数据,复制机制也允许你恢复硬件故障和服务中断,进而起到数据的容灾和备份作用. 在MongoDB中,一个复制集就是一组mongod实例,一个mongod实例作为primary也就是所谓的master服务,接收所有的写操作,其他的mongod实例作为secondaries

Java 线程第三版 第九章 Thread调度 读书笔记

一.Thread调度的概述 import java.util.*; import java.text.*; public class Task implements Runnable { long n; String id; private long fib(long n) { if (n == 0) return 0L; if (n == 1) return 1L; return fib(n - 1) + fib(n - 2); } public Task(long n, String id)

MongooooooooooooooooooooDB入门三:MongoDB shell

MongoDB shell是什么? MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序. 但shell的作用远不止于此,它主要还是用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于SQL Server的管理工具SSMS. 可以通过以下2条命令打开shell控制台: > cd C:\Program Files\MongoDB 2.6 Standard\bin > mongo 如图所示: C:\Program Files\MongoD

APUE学习笔记:第九章 进程关系

9.1 引言 本章将更详尽地说明进程组以及POSIX.1引入的会话的概念.还将介绍登陆shell(登录时所调用的)和所有从登陆shell启动的进程之间的关系. 9.1 终端登陆 系统管理员创建通常名为/etc/ttys的文件,其中每个终端设备都有一行,每一行说明设备名传递给getty程序的参数.当系统自举时,内核创建进程ID为1的进程,依旧是init进程.init进程使系统进入多用户状态.init进程读文件/etc/ttys,对每一个允许登陆的终端设备,init调用一次fork,所生成的子进程则