mongodb學習筆記----一

1,mongodb使用MongoDB傳輸協議做爲和服務器交互的主要方式,與之對應的協議http/rest須要更多的開銷 mongodb

2,mongodb區分類型,區分大小寫。 shell

3,文檔:多個鍵及其關聯的值有序的放在一塊兒即是文檔。{"greet":"hello world"};{"greet":"helloworld","bad":"hello world"}至關於關係行數據庫中的行,文檔中的鍵/值對是有序的,上面的文檔和下面的文檔是徹底不一樣的。 數據庫

4,集合:就是一組文檔,若是文檔至關於關係行至關於關係型數據庫中的行,那麼集合就至關於關係型數據庫中的表。集合是無模式的,這就意味着一個集合中的文檔能夠是各式各樣的。例以下面兩個文檔能夠放到一個集合裏 數組

{"greet":"hello world"},{"foo":5} 服務器

5,命名:1,集合名不能是空字符串。 ide

            2,集合名不能有\0,這個是標識結合的結尾 post

            3,不能以"system"開頭,這是爲系統集合表留的前綴。例如system.user這個集合保存者數據庫的用戶信息。 網站

            4,千萬不要在名字中出現$. url

6,數據庫:mongodb 中多個文檔組成集合,多個集合能夠組成數據庫。一個mongodb實例能夠繼承多個數據庫,它們之間能夠當作是徹底獨立的。每一個數據庫具備獨立的權限控制,即便在磁盤上,不一樣的數據庫也放置在不一樣文件中。注意,數據庫的名字應該所有小寫,最多64個字節。 spa

7,mongodb客戶端:開啓的時候,shell會連接到mongodb服務器的test數據庫,並將這個數據庫連接賦值給全局變量db。這個變量是shell訪問mongodb的主要入口點。

8,shell中的基本操做:CRUD

    1,建立:> post={"title":"production","content":"spider your shop","date":new Date()},上面執行完以後,已經建立了一個有效文檔,insert方法將其保存到blog集合中。

    2,>db.blog.insert(post);

    3, 查看>db.blog.find();用db.blog.findOne();能夠查看一個文檔。

    4,更新:update:至少接受連個參數:新文檔的限定條件,新的文檔

            blog.status=0;

            db.blog.update({"title":"production"},post);

    5,刪除:db.blog.remove();刪除所有

                db.blog.remove({"title":"helloworld"});

9,使用數據庫幫助命令:

    1,db.help()------->查看數據庫級別命令的幫助

    2,db.foo.help()-->集合相關的命令。

10,數據類型:布爾,null,數字,字符串,數組,對象。

                    JSON沒有日期類型,不能區分浮點數和整數,當mongodb作了補充。

                    默認狀況下,shell中的數字都被mongodb看成是雙精度,這樣致使默認的數據類型轉換成雙精度的問題,

11,建立,更新,刪除文檔:

    插入:    db.blog.insert({"family":"father and mother i love you"});

    批量插入:只有插入多個文檔到一個集合,這種操做纔會有用。

    刪除文檔:db.blog.remove();刪除全部文檔,但不會刪除集合自己,原有的索引也會保留。

                  db.blog.remove({'username':'helloworld'});

    更新文檔:db.blog.update({'username':'helloworld'},post)

    使用修改器:一般,文檔只需一部分須要更新。利用原子的更新修改器,使得這部分更新及爲高效。

    案例:在一個集合中放置網站的分析數據,沒當有人訪問頁面的時候,就要增長計數器,每一個URL以及對應的訪問次數以下存儲在analysis文檔中:

           example="{

            "_id":ObjectId("51b1a30013aaef94f07c1f7b"),

            "url":"www.example.com",

            "pageViews": 4444

            }"

        db.example.insert("example");

        db.example.find();

        {

             "_id" : ObjectId("51b1c08513aaef94f07c1f7d"), 

                "url" : "www.example.com", "pageviews" : 0 

        }

        利用修改器進行pageviews的自增1:

        db.example.update({"url":"www.example.com"},------->這裏寫完後回車

        ...{"$inc":{"pageviews":1}}) ------------------------------->這裏寫完後回車。

        db.analysis.find();會發現pageviews會增長1.

        說明:JavaScript中變量沒有$,因此用$開頭算是遺留問題。

相關文章
相關標籤/搜索