MongoDB实战:工具集与特殊魔术方法

云计算 MongoDB
MongoDB除了支持命令行的启动方式还支持配置文件启动通过读取启动配置文件的方式来启动数据库。

一、MongoDB启动方式

MongoDB除了支持命令行的启动方式还支持配置文件启动通过读取启动配置文件的方式来启动数据库比方说配置文件如下

 

181718808.png

 

则可以使用如下命令

1
./mongod -f /etc/mongodb.conf

MongoDB参数说明

dbpath:

数据文件存放路径每个数据库会在其中创建一个子目录用于防止同一个实例多次运

行的mongod.lock也保存在此目录中。

logpath

错误日志文件

logappend

错误日志采用追加模式默认是覆写模式

bind_ip

对外服务的绑定ip一般设置为空及绑定在本机所有可用ip上如有需要可以单独

指定

port

对外服务端口。Web管理端口在这个port的基础上+1000

fork

以后台Daemon形式运行服务

journal

开启日志功能通过保存操作日志来降低单机故障的恢复时间在1.8版本后正式加入

取代在1.7.5版本中的dur参数。

syncdelay

系统同步刷新磁盘的时间单位为秒默认是60秒。

directoryperdb

每个db存放在单独的目录中建议设置该参数。与MySQL的独立表空间类似

maxConns

最大连接数

repairpath

执行repair时的临时目录。在如果没有开启journal异常down机后重启必须执行repair

操作。

停止数据库这里有一点需要注意

使用kill-2或者pkill都可以但是不要使用kill-9来杀死MongoDB进程这样会导致MongoDB的数据损坏。

二、常用工具集

MongoDB在bin目录下提供了一系列有用的工具这些工具提供了MongoDB在运维管理上

的方便。

bsondump:将bson格式的文件转储为json格式的数据

mongo:客户端命令行工具其实也是一个js解释器支持js语法

mongod:数据库服务端每个实例启动一个进程可以fork为后台运行

mongodump/mongorestore:数据库备份和恢复工具

mongoexport/mongoimport:数据导出和导入工具

mongofiles:GridFS管理工具可实现二制文件的存取

mongos:分片路由如果使用了sharding功能则应用程序连接的是mongos而不是

mongod

mongosniff:这一工具的作用类似于tcpdump不同的是他只监控MongoDB相关的包请

求并且是以指定的可读性的形式输出

mongostat:实时性能监控工具

三、一些很重要的魔术方法

1、$all匹配所有

这个操作符跟SQL语法的in类似但不同的是,in只需满足()内的某一个值即可,而$all必

须满足[]内的所有值例如:

db.users.find({age:{$all:[6,8]}});

可以查询出{name:'David',age:26,age:[6,8,9]}

但查询不出{name:'David',age:26,age:[6,7,9]}

2、$mod取模运算

查询age取模10等于0的数据

db.student.find({age:{$mod:[10,1]}})

举例如下:

C1表的数据如下:

1
2
3
4
> db.c1.find()
"_id" : ObjectId("4fb4af85afa87dc1bed94330"), "age" : 7, "length_1" : 30 }
"_id" : ObjectId("4fb4af89afa87dc1bed94331"), "age" : 8, "length_1" : 30 }
"_id" : ObjectId("4fb4af8cafa87dc1bed94332"), "age" : 6, "length_1" : 30 }

查询age取模6等于1的数据

1
2
> db.c1.find({age: {$mod : [ 6 , 1 ] } })
"_id" : ObjectId("4fb4af85afa87dc1bed94330"), "age" : 7, "length_1" : 30 }

可以看出只显示出了age取模6等于1的数据其它不符合规则的数据并没有显示出来

3、$size数组元素个数

对于{name:'David',age:26,favorite_number:[6,7,9]}记录

匹配db.users.find({favorite_number:{$size:3}});

不匹配db.users.find({favorite_number:{$size:2}});

4、$slice取数组中指定段的记录

 

192847132.png

 

5、$看实例吧

{"_id":1,"semester":1,"grades":[70,87,90]}

{"_id":2,"semester":1,"grades":[90,88,92]}

{"_id":3,"semester":1,"grades":[85,100,90]}

{"_id":4,"semester":2,"grades":[79,85,80]}

{"_id":5,"semester":2,"grades":[88,88,92]}

{"_id":6,"semester":2,"grades":[95,90,96]}

 

结果这样

{"_id":1,"grades":[87]}

{"_id":2,"grades":[90]}

{"_id":3,"grades":[85]}

四、存储过程

MongoDB存储过程是存储在db.system.js表中的我们想象一个简单的sql自定义函数如下

存储过程的定义查看和执行

 

194708616.png

 

本文出自 “phper-每天一点点~” 博客,请务必保留此出处http://janephp.blog.51cto.com/4439680/1322792

 

责任编辑:王程程 来源: 51CTO博客
相关推荐

2010-11-03 10:31:51

PHP魔术方法

2023-01-31 08:03:32

部署mongod配置

2016-10-27 15:58:35

魔术方法PHP

2010-03-05 09:23:32

Linux快捷键

2022-11-16 08:00:37

MongoDB阿里云的登录

2016-12-01 19:51:03

PHP魔术详解

2022-02-21 11:24:14

代码工具开发

2019-10-22 15:15:09

数据库MySQL RouteMySQL

2013-12-02 11:00:27

MongoDB

2017-04-26 08:51:36

MongoDB集群实战

2013-11-28 09:48:55

MongoDBSharding分片

2013-11-25 10:45:04

MongoDB

2009-12-15 15:19:30

Ruby访问控制

2010-02-22 17:43:19

WCF服务启动

2010-09-13 14:25:03

2020-12-08 06:24:08

Java 代码工具

2009-09-18 13:53:09

LINQ工具集

2018-01-29 12:39:56

数据库MongoDB集群

2009-12-28 15:39:33

WPF滑动条

2009-08-03 14:39:25

Asp.Net函数集
点赞
收藏

51CTO技术栈公众号