非关系数据库------MongoDB的安装与运用
发布时间:2023-09-27 15:16:09 所属栏目:系统 来源:
导读:MongoDB概述
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mon
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mon
MongoDB概述 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 MongoDB特点 面向集合存储,易存储对象类型的数据; 模式自由、支持查询、支持动态查询; 支持完全索引,包含内部对象; 支持复制和故障恢复; 使用高效的二进制数据存储,包括大型对象(如视频等); 自动处理碎片,以支持云计算层次的扩展性; 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言; 文件存储格式为BSON(一种JSON的扩展); 可通过网络访问。 在Linux安装MongoDB #配置yum源仓库 cd /etc/yum.repos.d/ vim mongodb-org.repo [mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc #安装 MongoDB yum install mongodb-org -y #修改配置文件 vim /etc/mongod.conf #修改第30行的监听地址 bindIp: 0.0.0.0 #开启服务 systemctl start mongod.service #关闭防火墙和安全功能 systemctl stop firewalld.service setenforce 0 #查看服务端口状态 netstat -ntap | grep mongod #复制配置文件,以开启多实例 cp -p /etc/mongod.conf /etc/mongod2.conf #修改配置文件 vim /etc/mongod2.conf #第10行,修改日志文件目录 path: /var/log/mongodb/mongod2.log #第14行,修改数据存储目录 dbPath: /data/mongodb/mongo #第29行,修改服务端口号 port: 27018 #创建实例的目录和日志文件 mkdir -p /data/mongodb cd /data/mongodb/ mkdir mongo touch mongod2.log #目录授权 chmod 777 mongod2.log #启动实例 mongod -f /etc/mongod2.conf #指定实例的端口 mongo --port 27018 #查看服务端口状态 netstat -ntap MongoDB 基础操作 #查看版本 db.version() #查看数据库 show dbs; #查看当前数据库机器的连接地址 db.getMongo() #显示集合操作命令 db.集合名.help #显示用户 show users 增删改查 use school; #打开school数据库, 不存在会创建,不建立集合又会删除 db.createCollection('info') #创建集合 db.info.insert({"id":1,"name":"zhangsan","hobby":["game","talk"]}) #添加数据 db.info.find() #查看info集合中所有文档 show collections #查看数据库中所有集合 db.info.update({"id":10},{$set:{"name":"tom"}}) #更改数据 db.info.remove({"id":2}) #移除info集合中的id2的数据 db.info.drop() #删除info集合 db.dropDatabase() #删除数据库 先use到要删的数据库里在删 db.info.count() #统计有多少条数据 MongoDB 数据类型 String #字符串,最常用,必须是utf-8 Boolean #布尔值,true 或者false Integer #整数型 Double #浮点型 Arrays #数组或者列表,多个值存储到一个键 Object #用于嵌入文档,即一个值为一个文档 Null #存储null值 Binary Data #二进制数据,用于存储二进制数据 Date #存储当前日期或时间unix时间格式 查看数据类型 a=db.info.findOne({"id":1}) #查找指定记录并赋予别名a ypeof(a.id) #查看属性类型 备份与恢复数据 导出工具:mongoexport 导入工具:mongoimport 常见选项: -h,--host :代表远程连接的数据库地址,默认连接本地Mongo数据库; --port:代表远程连接的数据库的端口,默认连接的远程端口27017; -u,--username:代表连接远程数据库的账号,如果设置数据库的认证,需要指定用户账号; -p,--password:代表连接数据库的账号对应的密码; -d,--db:代表连接的数据库; -c,--collection:代表连接数据库中的集合; -f, --fields:代表集合中的字段,可以根据设置选择导出的字段; --type:代表导出输出的文件类型,包括csv和json文件; -o, --out:代表导出的文件名; -q, --query:代表查询条件; --skip:跳过指定数量的数据; --limit:读取指定数量的数据记录; --sort:对数据进行排序,可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列,如sort({KEY:1})。 for(var i=1;i<=100;i++)db.info.insert({"id":i,"name":"jack"+i}) #循环写入100条数据 mongoexport -d school -c info -o /opt/info.json #导出指定文件 mongoimport -d school -c info1 --file /opt/info.json #导入到info1集合 mongoexport -d school -c info1 -q '{"id":{"$eq":10}}' -o /opt/top10.json #查询指定第10行条件导出 备份与恢复 备份工具:mongodump 恢复工具:mongorestore 常用选项: -h 指定Mongodb所在服务器的地址也可以指定端口(例:-h 127.0.0.1:27017) -d :需要备份的数据库; -o :备份数据存放的目录 该目录需提前创建 mkdir /backup #创建存放目录 mongodump -d school -o /backup/ #备份school数据库 mongorestore -d school1 --dir=/backup/school #恢复到school1数据库 复制数据库: db.copyDatabase("school","school2") #复制数据库school 到school2中 克隆数据库: 把数据库school的info集合 克隆到实例2 先进入实例2的MongoDB mongo --port 27018 db.runCommand({"cloneCollection":"school.info","from":"192.168.142.152:27017"}) 安全管理 创建管理用户; 启动时必须指定 auth=true; 可以将用户分配角色; 内置数据库用户角色: read 、 readWrite; 数据库管理员角色: dbAmin 、 dbOwner 、 userAdmin; 超级用户管理员用户:root #编辑配置文件 vim /etc/mongod.conf auth=true #添加指定 use admin db.createUser({"yj":"root","pwd":"123","roles":["root"]}) #创建用户yj 密码123 分配root角色 db.auth("root","123") #验证用户 进程管理 查看当前正在运行的进程: db.currentOp() 终止正在运行的进程: db.killOp(opid值) db.currentOp() #查看当前运行进程 db.killOp(4872) #终止4872进程 MongoDB 监控 MongoDB提供一些内置工具可以监测数据库的状态信息 查看数据库实例的状态信息: db.serverStatus() 查看数据库的统计信息: db.stats() 此外也可以通过web界面查看系统监控信息需要在配置文件中加入 ##编辑配置文件 vim /etc/mongod.conf #开启http服务 httpinterface=true (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐