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();
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。