MongoDB學習筆記(一)

來源:互聯網
上載者:User

標籤:style   color   java   os   使用   資料   代碼   javascript   size   

推薦學習書籍:MongoDB權威指南

 

一、簡介

MongoDB:面向文檔的資料庫。(不是關係型資料庫)

其採用的面向文檔的資料模型使其可以自動在多台伺服器之間分割資料。

 

二、入門

1、什麼是文檔?

文檔時MongoDB中資料的基本單元。(類似於關係型資料庫中的行,但比行複雜)。

自己理解:多個索引值對的有序放在一起

注意:

  • 文檔中的鍵是字串(少數例外情況可以使用任意的utf-8字元)
  • MongoDB不僅區分類型,也區分大小寫。如:數字3 和 字串“3”不同。
  • 每個文檔有唯一的_id來標示

2、集合

集合就是一組文檔。是無模式的,即一個集合裡的文檔可以是各式各樣的。

3、資料庫

多個文檔組成集合,同樣多個集合組成資料庫。

4、MongoDB shell

MongoDB內建一個javascript shell,可以從命令列與MongoDB執行個體互動。

  4.1、shell中的基本操作(CRUD)

  • 建立  insert
  • 讀取 find() 或 findOne() 
  • 更新 update()
  • 刪除 remove

  4.2 學會使用協助 help

5、資料類型

  null、布爾、32位整數、64為整數、64位浮點數、字串、符號  ??、對象id、日期、Regex、代碼、位元據、最大值、最小值、未定義、數組、內嵌文檔(常用)

 

三、建立、更新及刪除文檔

1、插入

若插入多個文檔,批量插入會更快一些。

2、刪除

刪除資料時永久性的,不能撤銷也不能恢複。

3、更新文檔

  • 文檔替換 delete update
  • 使用修改器
    • $set用來指定一個鍵的值,若該鍵不存在則建立它。
    • $inc用來增加和已有鍵的值,若該鍵不存在則建立一個鍵。
    • 數組修改器$push $ne (條件判斷)  $addToSet(可以避免重複)  $addToSet和$each 組和起來,可以添加多個不同的值。  $pop  $pull
    • 數組定位修改器 "."  "$"(定位器只更新第一個匹配到的元素)
  • upsert是一種特殊的更新。要是沒有匹配的文檔,就會以這個條件和更新文檔為基礎建立一個新的文檔。 update的第三個參數設為true。
    • 預設的情況下,更新只能對合格第一個文檔進行更新操作。要是想要更新多個文檔,update的第四個參數設為true
    • 返回已更新的文檔 findAndModify()和getLastError查看更新的文檔數

 

三、查詢

查詢就是返回一個集合中文檔的子集。

1、find()函數介紹

查詢文檔:

當查詢文檔為空白({}),就是返回整個集合。可以向查詢文檔中加入多個索引值對。(對個條件會用and組合在一起)

find({"user_name" : "Joe", "age" : 19, "sex" : "man", ...})

制定返回的鍵:

有時不需要將文檔中所有的鍵-值對都返回。此時可以用find的第二個參數來制定想要顯示的鍵。(1:顯示 0:不顯示)

find({}, {"user_name" : 1, "email" : 1, "_id" : 0})

2、查詢條件

  • 比較子 $lt、$lte、$gt、$gte分別對應<、<=、>和>=。如:{"age" : {"$gte" : 18,"lte" : 30}} (18<=age<=30)
  • OR查詢
    • $in 單一鍵與多個值匹配 {"age" : {"$in" : [12, 13, 17, 30]}}
    • $or  多個條件組合和and條件有點區別 {"$or" : [ {"age" : {"$in" : [13, 24, 98]}, {"winner" : true } ]}  
    • $not 元條件句,可以用在任何條件之上
    • 特定於類型的查詢
      • $null (1.值為null 2.匹配不存在)
      • Regex
    • 數組查詢
      • $all   {"fruit" : {"$all" : ["apple", "banana"]}}
      • $size  {"fruit" : {"$size" : 3}}
      • $slice  {"comments" : {"$slice" : 10}} #前10條評論
    • 查詢內部文檔
      • $eleMatch  將限定條件進行分組,僅當需要對一個內嵌文檔的多個鍵操作時才會用到。
  • $where 查詢
  • 遊標 資料庫用遊標來返回find執行的結果。
  • limit、skip和sort

 

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.