MongoDB是一个nosql数据库它有高性能、无模式文档型的特点是nosql数据库中功能最丰富,最像关系型数据库,数据库格式BSON。
实例: 系统上运行的MongoDB的进程类似于mysql的实例
库: 每个数据库都是独立的,有自己的用户,权限,独立存储集合,类似与mysql的库
集合: 有一组文档构成,类似于mysql的表
文档: mongodb数据库的最小数据集,是由多个键值对有序组合的数据单元,类似与mysql的数据记录
主键: 唯一标识一行数据
面相集合文档存储,适合存储json形式的数据
格式自由,数据格式不固定,数据结构发生变更的同时不会影响程序运行
面向对象的sql查询语句,基本涵盖关系型数据库的所有查询语句
有索引的支持,查询效率更快
支持复制和故障转移
可以使用分片集群提升查询性能
游戏
物流
社交
物联网
视频直播
大数据
二、安装
一、编译安装
二、rpm安装
配置mongo源 vim /etc/yum.repo.d/mongo.repo
[mongodb-org-4.2]
name=MongoDb Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.monyum install -y mongodb-orggodb.org/static/gpg/server-4.2.asc
安装 yum install -y mongodb-org
启动数据库 systemctl start mongod.service
rpm -ql mongodb-org-server
/etc/mongod.conf 主配置文件
port: 27017 监听端口号
bindIp: 127.0.0.1 监听地址
/run/mongodb PID文件
/usr/bin/mongod 启动命令
/var/lib/mongo 存储数据文件
/var/log/mongodb 日志
rpm -ql mongodb-org-shell
/usr/bin/mongo 客户端命令
rpm -ql mongodb-org-tools
/usr/bin/mongodump 备份数据库
/usr/bin/mongoexport 备份文档
/usr/bin/mongoimport 恢复文档
/usr/bin/mongorestore 恢复数据库
从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。
一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合。
当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
查看数据库 show database
show dbs
显示当前所在数据库 db
切换数据库 use dbName
数据库创建 隐式创建
不用主动创建,使用use newDB,会自动创建不存在的数据库
只有在库中创建集合后才会保存,并使用show dbs查看到
删除数据可 use dbName db.dropdatabase()(需要在库中才能删除)
查看集合 show tables
创建集合 db.createCollection("test ") (集合test)
插入数据(文档) db.集合名称.insert({key:value}) 单行插入数据
db.集合名称.insertmany ([{key:value},{key:value},{key:value}])
mongodb默认数字的数据类型float浮点型,若要改变为整型:NumberInt(数字)
查询数据 db.集合名称.find({}) 全集合查询
db.集合名称.find() 全集合查询
条件查询 db.info.find({查询条件1key:value,查询条件2,...},{key1:1|0,key2:1|0,...})
key:1 显示,key:0 不显示
当显示的key只有一个时,key:1 只显示该key及对应value,key:0 显示除了该key之外其他所有keyvalue
删除数据 db.集合名称.remove({})
更新数据 db.info.update({_id:"3"}, {$set:{name:"jack"}})
所有满足条件的文档都进行更新 db.info.update({'name':'wangwu'},{$set:{password:"tom"}},{multi:true})
更新文档进行数值递增 db.info.update({userid:""},{$inc:{likenum:NumberInt()}})
-h=hostname:port
-u=
-p=
--authenticationDatabase=
-d=
-o=
语法 mongodump -d dbName -h hostName:port -u userName -p Password -o backupDirectory
-h=hostname:port
-u=
-p=
--authenticationDatabase=
-d=
-o=
语法 mongoexport -d dbName -c tableName -h hostName:port -u userName -p Password -o backupDirectory/jsonFile.json
-h=hostname:port
-u=
-p=
--authenticationDatabase=
-d=
--drop 当目标数据库中存在同名集合则删除再恢复
语法 mongorestore -h hostName -u username -p password -d dbName -c tableName bakcupDirector/bsonFile
·-h=hostname:port
-u=
-p=
--authenticationDatabase=
-d=
--drop 当目标数据库中存在同名集合则删除再恢复
语法 mongoimport -d dbName -c tableName -h hostName:port -u userName -p Password backupDirectory/jsonFile.json