1. 程式人生 > 其它 >非關係型資料庫Redis/MongoDB

非關係型資料庫Redis/MongoDB

關係性資料庫有以下缺點

儲存在硬碟上,讀寫慢

需保持ACID,難以擴充套件

 

非關係資料庫

Not only SQL

都是以key:value形式存在

可以用在分散式系統

有CAP特性:一致性,可用性,分隔容忍(不能三個特性一起用)

缺點:非標準化語言,有限的查詢功能

 

 

- Redis

免費開源資料庫

 

- MongoDB

非關係型資料庫nosql

檔案儲存:類Json格式

有機會對欄位建立索引,實現關係資料庫

 

下載:官網

mongoDB操作:

執行mongoDB伺服器

mongod -dbpath xxx

連線MongoDB:

mongo

檢視當前資料庫

show dbs

切換資料庫(如果沒有會自動建立)

use demo1

插入資料:

db,demo1.insert("name":"xiaohong")

切換到資料庫demo1

use demo1

刪除資料庫

db.dropDatabase()

 

集合:

集合相當於一張表,集合可以有多個文件。

建立集合

db.createCollection('collection1')

 檢視已經建立的集合

show collections

刪除集合

db.collection1.drop()

 

插入和檢視文件

文件是mongodb最基本單元

 

db.collectDemo.insert({"name":"xiaohong"})

檢視插入的內容

db.collectionDemo.find().pretty()

宣告變數,插入文件

doc=({....})

db.collectionDemo.insert(document)

 

修改和刪除文件

替換是對於整條資料進行替換;

db.collection.update({‘title':'MongoDB'},{'title':'mongoDB123'})

修改多個文件

如果不加set則會整條記錄被替換

db.collection.update({'name':'hello'},

{$set:{'name':'hello123'}},{multi:true})

刪除多個文件

db.col.remove({'name':'hello123'})

刪除一個文件

db.col.remove({'name':'hello'},1)

 

修改操作符

$inc

{$inc:{field:value}}

作用:對於一個數字欄位的某個field增加value

例如將年齡增加5

$set

{$set:{field:value}}

將文件中某個欄位field的值設為value

$unset

{$unset:{field:1}}

刪除某個欄位field

$push

{$push:{field:value}}

把value追加到field裡面

例如 :給chenzhou新增別名michael

$rename

對欄位重新命名