您好,登錄后才能下訂單哦!
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();
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。