中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

NoSQL介紹(七)

發布時間:2020-10-10 10:14:22 來源:網絡 閱讀:621 作者:studywinwin 欄目:MongoDB數據庫

NoSQL介紹(七)

MongoDB介紹

  • 官網www.mongodb.com
  • c++編寫,基于分布式,屬于NoSQL的一種
  • 在NoSQL中是最像關系型數據庫
  • MongoDB將數據存儲為一種文檔,數據結構由鍵值(key=>value)對組成。MongoDB文檔類似于JSON對象。字段值可以包含其他文檔、數組及文檔數組。
  • 因為基于分布式,所以很容易擴展

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用戶角色

  • Read:允許用戶讀取指定數據庫
  • readWrite:允許用戶讀寫指定數據庫
  • dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建,刪除,查看統計或訪問system.profile
  • userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫里創建、刪除和管理用戶
  • clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限。
  • readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
  • readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
  • userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
  • dbAdminDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限
  • root:只在admin數據中可用。超級賬號,超級權限

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();
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

油尖旺区| 新化县| 綦江县| 合川市| 威远县| 甘洛县| 全州县| 宁陵县| 焉耆| 大同市| 墨竹工卡县| 疏勒县| 博白县| 延吉市| 特克斯县| 来凤县| 晋州市| 武平县| 东兰县| 苗栗县| 明星| 霍林郭勒市| 从化市| 思茅市| 荥经县| 陆川县| 普宁市| 华容县| 新乡县| 肥西县| 固安县| 宁河县| 叙永县| 来安县| 桓仁| 江北区| 望江县| 辛集市| 武冈市| 宁国市| 麻江县|