MongoDB學習筆記(一)

來源:互聯網
上載者:User

標籤:bre   some   opd   body   eve   and   date   操作   value   

  大資料時代,mysql等關係型資料庫已經不能滿足資料爆炸的大勢。nosql作為一種非關係型資料存放區模式應運而生,主要應用於分布式資料存放區系統。

  【申明:本文中大部分內容來源提煉於菜鳥教程的《NoSQL簡介》,僅做學習筆記參考】

 

一、NoSQL簡介

  NoSQL(NoSQL = Not Only SQL ),意即"不僅僅是SQL"。是對不同於傳統的關係型資料庫的資料庫管理系統的統稱。採用的是索引值對的方式進行資料存放區。

 

二、CAP定理

  在電腦科學中, CAP定理(CAP theorem), 又被稱作 布魯爾定理(Brewer‘s theorem), 它指出對於一個分散式運算系統來說,不可能同時滿足以下三點:

  • 一致性(Consistency) (所有節點在同一時間具有相同的資料)
  • 可用性(Availability) (保證每個請求不管成功或者失敗都有響應)
  • 分隔容忍(Partition tolerance) (系統中任意資訊的丟失或失敗不會影響系統的繼續運作)

 

三、MongoDB的安裝與配置

  參考:https://jingyan.baidu.com/article/d5c4b52bef7268da560dc5f8.html

  添加環境變數至path(value:%mongodb安裝路徑%/bin)。

  開啟mongodb的方式,在命令列直接輸入:mongo.exe(若服務未啟動,先執行:net start MongoDB)

 

四、MongoDB與MySql概念的對比  

SQL術語/概念 MongoDB術語/概念 解釋/說明
database database 資料庫
table collection 資料庫表/集合
row document 資料記錄行/文檔
column field 資料欄位/域
index index 索引
table joins   表串連,MongoDB不支援
primary key primary key 主鍵,MongoDB自動將_id欄位設定為主鍵

 

 

 

 

 

 

 

 

五、MongoDB命令列

1、建立資料庫

  use  databasename;//若databasename存在則被選中,若不存在則被建立。

  show dbs;//顯示所有的庫名。新建立的庫名若為插入資料,則不會顯示出來。

  db.databasename.insert({"key":"value"});//向databasename中插入一條資料。

2、刪除資料庫/集合

  (1)刪除資料庫:先選中要刪除的資料庫名:use databasename;  刪除資料庫:db.dropDatabase();

  (2)刪除集合:db.collectionname.drop();

3、向集合中插入資料

  db.collectionname.insert({"name":"vike"});

4、更新集合中的資料

  db.collectionname.update({"name":"vike"},{$set:{"name":"someone"}})

  db.collectionname.save({"name":"vike"},{$set:{"name":"someone"}})

5、刪除集合資料

  db.collectionname.remove({"name":"someone"},1)  //只刪除合格一條資料  = db.collectionname.deleteOne({"name":"someone"})

  db.collectionname.remove({})  //刪除集合內的全部資料    = db.collectionname.deleteMany({})

6、查詢集合資料

  db.collectionname.find().pretty()  //pretty()可以使資料格式化顯示

 

查詢條件: 

MongoDB 與 RDBMS Where 語句比較

如果你熟悉常規的 SQL 資料,通過下表可以更好的理解 MongoDB 的條件陳述式查詢:

操作 格式 範例 RDBMS中的類似語句
等於 {<key>:<value>} db.col.find({"by":"菜鳥教程"}).pretty() where by = ‘菜鳥教程‘
小於 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
小於或等於 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
大於 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
大於或等於 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等於 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50
MongoDB AND 條件

MongoDB 的 find() 方法可以傳入多個鍵(key),每個鍵(key)以逗號隔開,即常規 SQL 的 AND 條件。

文法格式如下:

>db.col.find({key1:value1, key2:value2}).pretty()
MongoDB OR 條件

MongoDB OR 條件陳述式使用了關鍵字 $or,文法格式如下:

>db.col.find(

   {      $or: [         {key1: value1}, {key2:value2}      ]   }).pretty()

MongoDB $type 操作符

$type操作符是基於BSON類型來檢索集合中匹配的資料類型,並返回結果。

MongoDB 中可以使用的類型如下表所示:

 

類型 數字 備忘
Double 1  
String 2  
Object 3  
Array 4  
Binary data 5  
Undefined 6 已廢棄。
Object id 7  
Boolean 8  
Date 9  
Null 10  
Regular Expression 11  
JavaScript 13  
Symbol 14  
JavaScript (with scope) 15  
32-bit integer 16  
Timestamp 17  
64-bit integer 18  
Min key 255 Query with -1.
Max key 127  

 
 

MongoDB學習筆記(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.