mongodb数据库在Linux上的使用
一、 mongodb的使用
(1)which mongod
此步骤的作用是,检测mongodb是否在电脑上安装成功。
(2)mkdir -p /data/db
新建一个/data/db
文件夹,-p
表示递归创建。
这个文件夹的作用是用来保存数据库的文件。
(3)df -lh
显示磁盘内存占用情况,-h
表示人性化显示
(4)mongod --dbpath=/data/db --port=27017
此命令用来启动mongodb服务。
--dbpath
参数用来指定数据库保存的路径;--port
参数用来指定端口,这个参数也可以不指定,如果没有指定,那么就会默认启用27017端口进行服务。
(5)mongod --dbpath=/data/db --port=27017 --fork --syslog
此命令是用采用守护进程的方式来启动mongod。
--syslog
代表将mongod产生的日志写入系统日志中。
(6)tail -f /var/log/messages
此命令用来跟踪系统日志,当有新的日志被写入messages的时候,就会呗打印在终端界面上。
(7)关掉mongodb进程
用mongod --shutdown
或者kill 进程端口号
两种方式关掉mongodb进程
(8)将mongodb产生的日志写入指定文件夹
mongod --dbpath=/data/db --port=27017 --fork --logpath=/var/log/mongod.log
表示将mongodb采用守护进程的方式运行,并且将日志写入指定路径中。
(9)另外在CentOS 7中,还可以采用一种方式启动mongodb程序
service mongod start
表示启用mongodb服务
service mongod stop
表示终止mongodb服务
service mongod restart
表示重启mongodb服务
要注意的是,此种启动方式是从官网上看到的,不知道默认系统日志会被写入到哪个路径,并且暂时还不知道数据库文件会被保存到哪个路径之中。
二、mongodb客户端工具的使用
(1)启动的两种方式
- 第一种方式是直接在命令行上键入
mongo
命令,即可启动mongodb的客户端工具 - 第二种方式是指定ip地址和端口号,如
mongo 127.0.0.1:27017
(2)显示数据库
show dbs
命令用来查看当前有哪些数据库
admin (empty)
local 0.000GB
这两个数据库,是mongodb默认的数据库。
(3)创建数据库
不需要用专门的命令来创建数据库,采用use example
命令就能切换到example数据库,当这个数据库不存在的时候,就会自动被创建。
但是此时你如果用show dbs
命令依旧不能看到这个example数据库,只有当你真正的朝这个数据库中写入数据的时候,这个数据库才会被真正的创建出来
(4)创建集合
使用db.users.insert({"username": "fengruoqing"});
,创建了一个名为users
集合,并为集合中添加第一条数据({"username": "fengruoqing"})
(5)显示集合
show collections
,显示当前数据库中的所有集合
(6)查看集合中所有数据的方法
db.集合的名字.find()
,就会显示集合中所有的数据
db.集合的名字.find().count()
,此命令用来显示集合中含有的数据数据的条数
db.集合的名字.find({"条件"})
,如果在find()
中加入查找条件,就会列出所有符合条件的数据
(7)更新集合中的数据
db.集合的名字.update()
,使用update()
方法来更新函数
update({"条件"},{$set: {"更新后的内容"}},{multi: true})
,第三个参数没有,或者为false的时候,默认只修改索引到的第一条数据。
而且如果不写$set
关键字,与save有同样的效果。
(8)修改集合中的数据
db.集合的名字.save({"_id": ObjectId("xxxxxxxxxxxxxxx"),"key":"value"})
使用此命令,完全修改了集合中指定id的数据,直接就覆盖了原来的数据为新的数据
(9)删除集合中的数据
db.集合的名字.remove({'key':'value'}, true)
如果不指定第二个数据true
那么默认会删除所有符合K-V对的数据,如果指定了,只会删除集合里面第一个满足条件的数据
千万要注意的是,如果remove({})
里面传入了一个空的条件,那么集合中所有的数据都会被删除掉,但是这个删除数据的方法不会删除集合中的索引,只会删除数据。
如果要想把集合中索引和数据一并删除了,那么就必须使用这个方法db.集合的名字.drop()
(10)导入数据
mongoimport --db test --collection students --drop --file ./test.json -h 192.168.127.128:27017
mongoimport
为导入数据的工具
--db test
指定想要导入的数据库,此处为名为test的数据库
--collection students
指定想要导入的集合,此处导入名为students的集合中
--drop
表示导入之前,清空这个集合中的数据
--file ./test.json
指定想导入数据库的文件的路径,此处表示当前目录下的test.json文件
-h 192.168.127.128:27017
指定主机和端口号
注意的是,导入之前要确保数据库和集合的存在性,不然可能会导入失败
(11)筛选数据
精确匹配
db.students.find({"key":"value"});
精确匹配所有符合条件的数据,而且这个条件可以有多个条件匹配
db.students.find({"key": {$gt:"value"}});
此处表示条件匹配,查找数据中“key”的值大于“value”的所有数据或者条件
db.students.find({$or:[{"key1":"value2"},{"key2":"value2"}]});
表示查找符合两个条件之一的数据排序
db.students.find().sort({"score.语文":1, "age":1});
找到数据以后,加上sort()
进行排序,sort函数接受排序条件,“key”里放筛选的类别,然后“value”为1;如果有多个条件,依次按条件进行调整