文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

NoSQL介绍(七)

2024-04-02 19:55

关注

NoSQL介绍(七)

MongoDB介绍

MongoDB和关系型数据库的对比

SQL术语概念 MongoDB术语概念 解释说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column filed 数据字段/域
index index 索引
table joins 表连接MongoDB不支持
primary key primary key 主键MongoDB自动将_id字段设置为主键

MongoDB安装

官方安装文档 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

vim /etc/yum.repos.d/mongodb-org-3.6.repo
[mongodb-org-3.6]
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
yum list | grep mongodb
yum install -y mongodb-org

MongoDB的连接

systemctl start mongod.service
netstat -tlnp|grep mongod
tcp        0      0 192.168.221.10:27017    0.0.0.0:*               LISTEN      1999/mongod         
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      1999/mongod
mongo --port 27017 --host 192.168.221.10
mongo -uusername -ppasswd --authenticationDatabase db

MongoDB用户管理

mongo --port 27017 --host 192.168.221.10
> use admin //切换到admin库
> db.createUser({user:"admin",customData:{description:"superuser"},pwd:"admin",roles:[{role:"root",db:"admin"}]});
> db.system.users.find();
> show users;
> db.createUser({user:"zs",pwd:"zs",roles:[{role:"read",db:"testdb"}]});//创建zs用户
> db.dropUser('zs');//删除用户zs

使用用户名,密码连接mongo数据库,需要修改启动脚本并重启

vim /usr/lig/systemd/system/mongod.service  //在"OPTIONS="后加"--auth"
Environment="OPTIONS=--auth -f /etc/mongod.conf"
systemctl daemon-reload
systemctl restart mongod.service
mongo -u 'admin' -p 'admin' --authenticationDatabase 'admin' //需要指定数据库

在数据库db1中创建用户test1对db1库读写,对db2库只读。

> use db1;
> db.createUser({user:"test1",pwd:"test1",roles:[{role:"readWrite",db:"db1"},{role:"read",db:"db2"}]});
ctrl+d
mongo -u 'test1' -p 'test1' --authenticationDatabase 'db1'  
> use db2;
> db.auth("test1","test1");   
Error: Authentication failed.  //报错,因为用户test1在db1中创建

MongoDB用户角色

MongoDB创建集合

//db.createCollection(name,options);
name就是集合的名字,iptions可选,用来配置集合的参数,参数如下:
capped true/false:为true,则启用封顶集合。封顶集合是固定大小的集合,当它达到其最大大小,会自动覆盖最早的条目。如果指定true,则也需要指定尺寸参数。
size (可选)指定最大大小字节封顶集合。如果封顶为true,还需要指定这个字段
max 指定封顶集合允许在文件的最大数量。
> db.createCollection('mycol',{capped:true,size:6142800,max:10000});

查看集合

> show tables; 或 show collections

创建集合Account并插入内容

> db.Account.insert({AccountID:2,UserName:'lisi',password:'lisi'});

查看集合Account的所有内容及条件查询

> db.Account.find();
> db.Account.find({AccountID:1});

根据条件删除Account集合中的一条记录

> db.Account.remove({AccountID:1});

打印集合状态

> db.printCollectionStats();

修改集合中的一条记录

> db.Account.update({AccountID:2},{"$set":{age:20}});

删除某个集合

> db.Account.drop();
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯