MongoDB for Linux 入門(一)

來源:互聯網
上載者:User
要說MongoDB就不能不先說NoSQL。關於NoSQL,推薦互連網上的兩篇文章:    1.http://www.iteye.com/topic/524977 By 範凱。這篇文章詳細介紹了NoSQL產生的背景,以及主流的NoSQL產品及其特點分析。    2.http://sebug.net/paper/databases/nosql/Nosql.html By 顏開。這篇文章介紹了NoSQL基本思想、基礎支撐理論、典型代表產品及特點、目前的應用案例等。在篇文章算是中文資料中比較全面的一篇。非常推薦。。。    關於MongoDB的介紹,可以自己Google,或者直接去MongoDB的官網:http://www.mongodb.org/  ,這裡就不贅述了。    下面重點說說兩方面:安裝以及基本使用(CRUD)    一、MongoDB的安裝    1.Linux、MacOS下的安裝    1.1 建立資料存放目錄,以便存放MongoDB的資料檔案,預設情況下,該目錄是/data/db。然後給使用者賦予對該目錄的讀寫權限。我們可以通過更改該目錄的所有者來實現。在終端中輸入以下命令:1mkdir -p /data/db2chown -R $USER:$USER /data/db    1.2 從官網下載壓縮包之後進行解壓,並且進入解壓後的目錄(XXX代表具體的版本號碼):1tar zxf mongodb-linux-i686-XXX.tar.gz2cd mongodb-linux-i686-XXX    1.3 啟動資料庫:1bin/mongod    安裝過程比較簡單。    二、MongoDB基本操作    2.1 基本概念介紹:    文檔:一系列索引值對有序的排列在一起就形成文檔。文檔是MongoDB的核心概念之一。下面就是一個文檔:1{"name":"wawlian","age":23}    需要注意的是,上面的兩對索引值對之間是有序的,換句話說順序不允許打亂。這一點是文檔的定義規定的。    文檔的鍵一般是字串,但是值可以使很多種類型,字串、布爾值、數字型等等。另外,MongoDB是區分大小寫哦。    集合:集合是若干文檔的集合,類似於傳統資料庫中的表,文檔則類似與傳統資料庫的記錄(表中的行)。這裡這麼說只是起到一個初學時的類比記憶。集合和傳統資料庫的表還是不一樣的。集合是無模式的,也就是說,集合不要求其中的文檔有相同的數目的索引值對,也不要求所有的鍵對應相等。這麼說可能有點抽象,看個例子:1{"name":"wawlian","age":23} 2{"language":"Chinese"}    這兩個形式完全不一樣的文檔是允許存在於一個集合中的。    資料庫:資料庫的概念也類似於資料庫,或者說類似於Oracle中的schema。多個不同的集合構成一個資料庫。一個MongoDB的執行個體可以載入多個不同的資料庫,他們之間完全獨立。    2.2 啟動和串連MongoDB    啟動MongoDB前面我們已經在安裝中說過,只需要在終端中輸入:1./mongod    正常啟動的輸出大概是這樣子的,當然不同版本之間可能有略微差距:1Thu Dec  1 22:49:22 [initandlisten] MongoDB starting : pid=281 port=27017 dbpath=/data/db/ 64-bit host=jerryMacBookhome.local2Thu Dec  1 22:49:22 [initandlisten] db version v2.0.1, pdfile version 4.53Thu Dec  1 22:49:22 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd6844Thu Dec  1 22:49:22 [initandlisten] build info: Darwin erh2.10gen.cc 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_405Thu Dec  1 22:49:22 [initandlisten] options: {}6Thu Dec  1 22:49:22 [initandlisten] journal dir=/data/db/journal7Thu Dec  1 22:49:22 [initandlisten] recover : no journal files present, no recovery needed8Thu Dec  1 22:49:23 [websvr] admin web console waiting for connections on port 28017    下面就是串連到MongoDB伺服器了。我們知道,MySQL可以通過1mysql -uroot -p   命令串連到MySQL伺服器,Oracle可以通過1sqlplus user/passwd    同樣,MongoDB也有這樣的工具。MongoDB提供了一個JavaScript Shell,可以從它和MongoDB進行互動。運行該shell:1./mongo    成功串連的輸出如下:1jerryMacBookhome:~ jerry$ mongo2MongoDB shell version: 2.0.13connecting to: test    shell是一個JavaScript解譯器,可以運行任何JavaScript程式。當然這不是我們關注的重點。我們關注的是怎麼在MongoDB中完成基本的CRUD操作。    2.3 基本CRUD操作    在進行操作之前,還需要補充一點基本知識。MongoDB中會使用一個變數db儲存當前使用的資料庫。我們串連到MongoDB資料庫,預設會串連到test資料庫。如果需要換到別的資料庫,可以使用use dbname命令:1> use foobar2switched to db foobar    2.3.1 Create:建立    我們假設需要在Persons集合中儲存人員資訊(姓名、年齡、資訊儲存日期)。可以先建立一個JS對象,然後將它插入資料庫對應集合:1> p = {"name":"wawlian","age":23,"CDate":new Date()};2{3    "name" : "wawlian",4    "age" : 23,5    "CDate" : ISODate("2011-12-01T17:13:45.671Z")6}7> db.Persons.insert(p);    上面{}中的部分是執行上一條指令的輸出。這個人員資訊已經儲存進去了。此外,我們之前並未建立集合Persons,這是我們在儲存人員資訊時根據命令,mongodb自己為我們建立的。    2.3.2 Retrieve:檢索         可以通過調用集合的find()方法查詢所有記錄:1> db.Persons.find();2{ "_id" : ObjectId("4ed7b5ce4f33e90801872724"), "name" : "wawlian", "age" : 23, "CDate" : ISODate("2011-12-01T17:13:45.671Z") }    我們之前插入的記錄已經查看到了。我們發現,多出了一個索引值對:_id/ObjectId。這是MongoDB為每個文檔添加的唯一標識。    2.3.3 Update:更新    更新使用的是集合的update()方法。當然,既然要更新,總得讓資料庫知道該更新誰吧。所以這個方法有兩個參數:更新條件、新的文檔。直接看代碼:1> db.Persons.update({"name":"wawlian"},{"name":"xiaobai","age":"18"});2> db.Persons.find();3{ "_id" : ObjectId("4ed7b5ce4f33e90801872724"), "name" : "xiaobai", "age" : "18" }    上面的代碼是將"name"為"wawlian"的文檔替換為後一個文檔。    2.3.4 Delete:刪除    刪除文檔只需要使用集合的remove()方法。remove()方法需要傳遞一個參數:刪除條件。這一點與上面的update()方法類似。1> db.Persons.remove({"name":"xiaobai"});2> db.Persons.find();    刪除之後再查看記錄已經沒有了。    以上是MongoDB的入門學習。隨著學習的繼續,我還會進一步介紹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.