MongoDB 安裝和即基本操作

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   io   os   使用   ar   

http://www.mongodb.org/

Agile and Scalable

MongoDB (from "humongous") is an open-source document database, and the leading NoSQL database. Written in C++, MongoDB features:

  • Document-Oriented Storage »

    JSON-style documents with dynamic schemas offer simplicity and power.

  • Full Index Support »

    Index on any attribute, just like you‘re used to.

  • Replication & High Availability »

    Mirror across LANs and WANs for scale and peace of mind.

  • Auto-Sharding »

    Scale horizontally without compromising functionality.

  • Querying »

    Rich, document-based queries.

  • Fast In-Place Updates »

    Atomic modifiers for contention-free performance.

  • Map/Reduce »

    Flexible aggregation and data processing.

  • GridFS »

    Store files of any size without complicating your stack.

  • MongoDB Management Service »

    Monitoring and backup designed for MongoDB.

  • Partner with MongoDB »

    Reduce cost, accelerate time to market, and mitigate risk with proactive support and enterprise-grade capabilities.

   關於mongodb的好處,優點之類的這裡就不說了,唯一要講的一點就是mongodb中有三元素:資料庫,集合,文檔,其中“集合”

就是對應關聯式資料庫中的“表”,“文檔”對應“行”。

 

一: 下載

      上MongoDB官網 ,我們發現有32bit和64bit,這個就要看你系統了,不過這裡有兩點注意:

          ①:根據業界規則,偶數為“穩定版”(如:1.6.X,1.8.X),奇數為“開發版”(如:1.7.X,1.9.X),這兩個版本的區別相信大家都知道吧。

          ②:32bit的mongodb最大隻能存放2G的資料,64bit就沒有限制。

  ①:啟動之前,我們要給mongodb指定一個檔案夾,這裡取名為”db",用來存放mongodb的資料。

    ②:微軟徽標+R,輸入cmd,首先找到“mongodb”的路徑,然後運行mongod開啟命令,同時用--dbpath指定資料存放地點為“db”檔案夾。

 

  ③:最後要看下是否開啟成功,的資訊中獲知,mongodb採用27017連接埠,那麼我們就在瀏覽器裡面鍵入“http://localhost:27017/”,

             開啟後,mongodb告訴我們在27017上Add 1000可以用http模式查看mongodb的管理資訊。

 

 

由於是開篇,就大概的說下基本的“增刪查改“,我們再開一個cmd,輸入mongo命令開啟shell,其實這個shell就是mongodb的用戶端,

同時也是一個js的編譯器,預設串連的是“test”資料庫。

2、切換/建立資料庫
>use yourDB;
當建立一個集合(table)的時候會自動建立當前資料庫
 
查詢所有資料庫
show dbs;
查看當前使用的資料庫
db.getName();
db;
db和getName方法是一樣的效果,都可以查詢當前使用的資料庫
 
9、顯示當前db狀態
db.stats();

2 添加windows系統服務

運行cmd.exe

> cd D:\mongodb\bin

> D:\mongodb\bin>mongod --dbpath "D:\mongodb\data\db" --logpath "D:\mongodb\log\mongo.log" --install --serviceName "MongoDB"

服務名為MongoDB

運行命令成功為如:

引時服務已經安裝成功,運行

>NET START MongoDB   (開啟服務)

>NET stop MongoDB   (關閉服務)

3 關閉資料庫

通過命令關閉,盡量不要直接關閉服務,防止磁碟寫入未完成導致資料丟失

>use admin

>db.shutdownServer();





 

<1>  insert 操作

             好,資料庫有了,下一步就是集合,這裡就取集合名為“person”,要注意的就是文檔是一個json的擴充(Bson)形式。

 

 <2> find 操作

       我們將資料插入後,肯定是要find出來,不然插了也白插,這裡要注意兩點:

           ① “_id": 這個欄位是資料庫預設給我們加的GUID,目的就是保證資料的唯一性。

           ② 嚴格的按照Bson的形式書寫文檔,不過也沒關係,錯誤提示還是很強大的。

<3> update操作

      update方法的第一個參數為“尋找的條件”,第二個參數為“更新的值”,學過C#,相信還是很好理解的。

<4> remove操作

      remove中如果不帶參數將刪除所有資料,呵呵,很危險的操作,在mongodb中是一個不可撤回的操作,三思而後行。

一: Insert操作

     上一篇也說過,文檔是採用“K-V”格式儲存的,如果大家對JSON比較熟悉的話,我相信學mongodb是手到擒來,我們知道JSON裡面Value

可能是“字串”,可能是“數組”,又有可能是內嵌的一個JSON對象,相同的方式也適合於BSON。

      常見的插入操作也就兩種形式存在:“單條插入”和“批量插入”。

   

    ①  單條插入

          先前也說了,mongo命令開啟的是一個javascript shell。所以js的文法在這裡面都行得通,看起來是不是很牛X。 

 ② 批量插入

      這玩意跟“單條插入”的差異相信大家應該知道,由於mongodb中沒有提供給shell的“批量插入方法”,沒關係,各個語言的driver都打通

了跟mongodb內部的批量插入方法,因為該方法是不可或缺的,如果大家非要類比下批量插入的話,可以自己寫了for迴圈,裡面就是insert。

 

二:Find操作

     日常開發中,我們玩查詢,玩的最多的也就是二類:

     ①: >, >=, <, <=, !=, =。

     ②:And,OR,In,NotIn

這些操作在mongodb裡面都封裝好了,下面就一一介紹:

 <1>"$gt", "$gte", "$lt", "$lte", "$ne", "沒有特殊關鍵字",這些跟上面是一一對應的,舉幾個例子。

 

<2> "無關鍵字“, "$or", "$in","$nin" 同樣我也是舉幾個例子

<3> 在mongodb中還有一個特殊的匹配,那就是“Regex”,這玩意威力很強的。

<4> 有時查詢很複雜,很蛋疼,不過沒關係,mongodb給我們祭出了大招,它就是$where,為什麼這麼說,是因為$where中的value

  就是我們非常熟悉,非常熱愛的js來助我們一馬平川。

 

三:Update操作

      更新操作無非也就兩種,整體更新和局部更新,使用場合相信大家也清楚。

    <1> 整體更新

         不知道大家可還記得,我在上一篇使用update的時候,其實那種update是屬於整體更新。

 

 

  <2> 局部更新

        有時候我們僅僅需要更新一個欄位,而不是整體更新,那麼我們該如何做呢?easy的問題,mongodb中已經給我們提供了兩個

   修改器: $inc 和 $set。

   ①  $inc修改器

       $inc也就是increase的縮寫,學過sql server 的同學應該很熟悉,比如我們做一個線上使用者狀態記錄,每次修改會在原有的基礎上

    自增$inc指定的值,如果“文檔”中沒有此key,則會建立key,下面的例子一看就懂。

 

 ② $set修改器

      啥也不說了,直接上代碼 

 

 

 <3> upsert操作(mysql中replace into和這個一樣)

     這個可是mongodb創造出來的“詞”,大家還記得update方法的第一次參數是“查詢條件”嗎?,那麼這個upsert操作就是說:如果我

沒有查到,我就在資料庫裡面新增一條,其實這樣也有好處,就是避免了我在資料庫裡面判斷是update還是add操作,使用起來很簡單

將update的第三個參數設為true即可。

 <4> 批次更新

     在mongodb中如果匹配多條,預設的情況下只更新第一條,那麼如果我們有需求必須批次更新,那麼在mongodb中實現也是很簡單

的,在update的第四個參數中設為true即可。例子就不舉了。

 

  今天跟大家分享一下mongodb中比較好玩的知識,主要包括:彙總,遊標。

一: 彙總

      常見的彙總操作跟sql server一樣,有:count,distinct,group,mapReduce。

<1> count

        count是最簡單,最容易,也是最常用的彙總工具,它的使用跟我們C#裡面的count使用簡直一模一樣。

 

 

<2> distinct

       這個操作相信大家也是非常熟悉的,指定了誰,誰就不能重複,直接。

 

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.