mongdb学习笔记(1)

学习mongo一段时间了,因为是平时用不到,所以学点东西总是不断忘记,现在记下来,方便以后查看。

参看资料<<MongoDB_权威指南_中文版>>,<<深入学习mongodb>>以及一些其他资料

其他介绍就不必,直接从使用入手吧,因为网上的安装mongdb的例子很多这里就不在重复了

(一)mongodb工具的大概介绍

安装完mongod后会在bin目录下有如下文件(window下会以.exe结尾):

bsondump:将bjson文档转化为json文档

mongo:mongodb的客户端,就是一个js解释器,可以执行大多js语言和查询mongodb数据库,后面会经常用到

mongodb:mongodb的服务端,每个实例启动一个进程

mongodump/mongorestore:mongodb备份和恢复的工具

mongoexport/mongoimport:mongodb的导出和导入文件

mongofiles:Gridfs管理工具,可以实现二进制文件存取和分片等功能

mongos:主要是用于mongodb分片中,用于当做分片集群的统一接口(路由)

mongosniff/mongostate:是mongodb的网路监控和mongodb性能监控,很有用

(二)启动和关闭mongodb数据库

mongodb和mysql一样可以在启动时代很多参数也可以在启动时使用配置文件,如果配置文件和参数中有冲突的,请以参数配置为准。

(1)启动mongodb数据库:

方法1:执行命令加参数

mongod  --dbpath=/data/db/  --logpath=/data/logs/mongo.log --port=10000  --bind_ip=127.0.0.1 --directoryperdb  --fork

参数说明:dbpath是数据库数据存放路径,如果路径不存在会报错的

    logpath是数据日志存放的路径包括文件名,路径必须存在,文件可以不存在

   这上面两个两个参数是必须的:

directoryperdb:每个单独的数据库存放在单独的文件夹内,维护很方便

mongodb默认启动了很多参数,其中下面是几个比较重要的

dbpath:默认是/data/db

bind_ip:默认是自己主机

port:默认是27017

  fork:是服务器再后天运行,而不是在终端,可以理解为c语言的fork函数,个人感觉具体实现应该和守护进程差不过吧。

方法2:使用配置文件启动

使用配置文件维护方便,而且启动了什么查看配置即可,如果启动多个服务器实例有点更明显,例如以后的副本集和分片如果用配置

mongod  -f /etc/mongo/mongdb.cnf

-f是说明mongdb使用配置,后面跟配置文件的路径及配置文件名,名字可以随便取

和上一个一样配置的配置文件格式如下mongdb.cnf:

dbpath:/data/db/

logpath:/data/logs/mongo.log

port:10000

bind_ip:127.0.0.1

directoryperdb:true

(2)关闭mongd服务器

1. 如果服务器是使用前台开启的,可以直接使用ctril+c关掉服务器

2. 可以使用pgrep mongod查看PID大小,然后使用kill 2 *****(不要用kill -9 PID来杀死MongoDB进程,这样可以会导致MongoDB的数据损坏)

3. 可以在客户端使用命令:db.shutdownServer()来关闭服务器

提示:在如果没有开启journal数据库非正常关闭时在再次启动时需要修复数据库,否则报错。加上--repair参数

(3)既然启动了数据库就必须要连接数据

mongo 127.0.0.1:10000

然后就行执行操作了

(三)数据库的操作

>show dbs :显示服务器有哪些数据库(类似有mysql的show databases)

>use test:切换数据库,数据test可以是不存在的数据库(这个和mysql一模一样啊,但是mysql时数据必须存在)

如果你不在这个库里建立数据的话,这个数据库时不被创建的

>db.dropDatabase():删除当前正在使用的这个数据库(db相当于是本数据库,类似于面向对象的self或this)

>db.cloneClone('1.1.1.1:10000'):从指定数据库上复制数据(没试过)

>db.repairDatabase():修复正在使用的数据库

>db.getName():显示当前正在使用的数据库名称

>db.stats():显示当前数据库的状态

>db.version():显示当前数据库版本

>db.getMongo():查看当前数据库的连接

(四)集合的操作(相当于表操作)

>db.createCollection("test1"):创建一个数据集合test1

>db.test2.save({name:"my name"}):这样直接插入一条数据,也会默认创建一个集合的

>db.getCollectionNames():显示当前数据库所有的集合名

>db.printCollectionStats():显示该数据库所有索引的状态

>db.test2.drop():删除集合test2   或>db.runCommand({"drop","test2"})


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值