玩轉mongodb(二):mongodb基礎知識


常用基本數據類型:

  • null

    null用於表示空值或者不存在的字段:

    {"data":null}

  • 布爾型

    布爾類型只有兩個值,true和false:

    {"data":true}、{"data":false}

  • 字符串

    字符串類型的數據是由UTF-8字符組成:

    {"data":"pingan"}

  • 正則表達式

    查詢時,使用正則表達式作為限定條件,語法和javascript的正則表達式一樣:

    {"data":/pingan/i}

  • 對象id

    對象id是一個12字節(24字符)的ID,是文檔的唯一標識。

    {"data":ObjectId()}

  • 數值

    shell默認使用64位的浮點型數值,即Double類型。對於整型值,可以使用NumberInt類(4字節帶符號整數)或NumberLong類(8字節帶符號整數)。

    {"data":3.33},表示Double類型

    {"data":NumberInt("3")},表示Int類型

    {"data":NumberLong("3")},表示Long類型

  • 數組

    數據列表或者數據集都可以表示為數組。數組的元素可以是數值、字符串等等其他基本數據類型,元素之間用英文逗號分隔開。

    {"data":[1,2,3]}、{"data":["a","b","c"]}

  • 日期

    日期被存儲為自新紀元以來經過的毫秒數,不存儲時區:

    {"data":new Date()}

  • 內嵌文檔

    文檔可以嵌套其他文檔,被嵌套的文檔作為父文檔的值:

    {"data":{"company":"pingan"}}

  • 二進制數據

    二進制數據是一個任意字節的字符串,要將非UTF-8字符保存到數據庫中,二進制數據是唯一的方式。比如保存圖片的數據。但是不能直接在shell中使用。

 

 1 //把圖片存到mongodb中
 2 public void SaveImgMG(byte[] byteImg)
 3 {
 4     Document doc = new Document();
 5     doc["ID"] = 1;
 6     doc["Img"] = byteImg;
 7     mongoCollection.Save(doc);
 8 }
 9 //獲取mongodb存儲的圖片字節數據
10 public byte[] GetImgMG()
11 {
12   Document doc=  mongoCollection.FindOne(new Document { { "ID", 1 } });
13   return doc["Img"] as Binary;
14 }
View Code

 

文檔:

     文檔就是鍵值對的一個有序集,是MongoDB中數據的基本單元,非常類似於關系型數據庫管理系統中的行,但更具表現力。

1 var mydoc = {
2                _id: ObjectId("5099803df3f4948bd2f98391"),
3                name: { first: "Alan", last: "Turing" },
4                birth: new Date('Jun 23, 1912'),
5                death: new Date('Jun 07, 1954'),
6                contribs: [ "Turing machine", "Turing test", "Turingery" ],
7                views : NumberLong(1250000)
8             }

集合:

    集合就是一組文檔,如果將MongoDB中的一個文檔比喻為關系型數據庫中的一行,那么一個集合就相當於一張表的概念。

數據庫:

    在MongoDB中,多個文檔組成集合,而多個集合可以組成數據庫,一個MongoDB實例,可以承載多個數據庫,每個數據庫擁有0個或者多個集合。MongoDB3.0這個版本中,有三個數據庫名是保留的。分別是:admin、local、config。

    admin:從身份驗證的角度來講,這是“root”數據庫。如果將一個新建的一個用戶添加到admin數據庫,這個用戶就自動獲得所有數據庫的權限。

    local:這個數據庫永遠都不可以復制,且一台服務器上的所有本地集合都可以存儲在這數據庫中。

    config:MongoDB用於分片設置時,分片信息會存儲在config數據庫中。 

shell中的基本操作:

    shell會用到4個基本的操作:創建、讀取、更新和刪除(即CRUD操作)。

    創建:

1 db.person.insert({"name":"ryan","age":26});
2 db.person.find({"name":"ryan"});

    

    

    更新:使用update修改人員信息。update接受(至少)兩個參數,第一個是限定條件(用於匹配待更新的文檔),第二個是新的文檔。

1 db.person.update({"name":"ryan"},{"name":"ryan","age":27});
2 db.person.find({"name":"ryan"});

    

    

    刪除:使用remove方法可將文檔從數據庫中永久刪除。如果沒有使用任何參數,它會將集合內的所有文檔全部刪除(甚用!!)。它可以接受一個作為限定條件的文檔作為參數。

1 db.person.remove({"name":"ryan"});
2 db.person.find({"name":"ryan"});

    

    

 

  喜歡請微信掃描下面二維碼,關注我公眾號--“精修Java”,做一些實戰項目中的問題和解決方案分享。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM