Ubuntu下MongoDB的安裝和卸載

來源:互聯網
上載者:User

標籤:單表查詢   詳細   表示   模式   art   remove   注意   返回   update   

本博文介紹了MongoDB,並詳細指引讀者在Ubuntu下MongoDB的安裝和使用。本教程在Ubuntu14.04下測試通過。 

一、MongoDB介紹

MongoDB 是一個是一個基於分布式檔案儲存體的資料庫,介於關聯式資料庫和非關聯式資料庫之間,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。他支援的資料結構非常鬆散,是類似json的bson格式,因此可以儲存比較複雜的資料類型。Mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似於物件導向的查詢語言,幾乎可以實作類別似關聯式資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。

二、安裝MongoDB

MongoDB安裝很簡單,無需下載源檔案,可以直接用apt-get命令進行安裝。 
開啟終端,輸入以下命令:

sudo apt-get install mongodb
  • 1

如下: 
 
安裝完成後,在終端輸入以下命令查看MongoDB版本:

mongo -version
  • 1

輸出版本資訊,表明安裝成功,如下: 
 
啟動和關閉mongodb命令如下:

service mongodb startservice mongodb stop
  • 1
  • 2

如下: 
 
預設設定MongoDB是隨Ubuntu啟動自動啟動的。 
輸入以下命令查看是否啟動成功:

pgrep mongo -l   #注意:-l是英文字母l,不是阿拉伯數字1
  • 1

如下: 
 
卸載MongoDB

sudo apt-get --purge remove mongodb mongodb-clients mongodb-server
  • 1
三、使用MongoDBshell命令模式

輸入mongo進入shell命令模式,預設串連的資料庫是test資料庫,在此之前一定要確保你已經啟動了MongoDB,否則會出現錯誤,啟動之後運行成功,如下: 

常用操作命令:

資料庫相關 
show dbs:顯示資料庫列表 
show collections:顯示當前資料庫中的集合(類似關聯式資料庫中的表table) 
show users:顯示所有使用者 
use yourDB:切換當前資料庫至yourDB 
db.help() :顯示資料庫操作命令 
db.yourCollection.help() :顯示集合操作命令,yourCollection是集合名 
MongoDB沒有建立資料庫的命令,如果你想建立一個“School”的資料庫,先運行use School命令,之後做一些操作(如:建立聚集集合db.createCollection(‘teacher‘)),這樣就可以建立一個名叫“School”的資料庫。如下: 
 
下面以一個School資料庫為例,在School資料庫中建立兩個集合teacher和student,並對student集合中的資料進行增刪改查基本操作(集合Collection相當於關係型資料庫中的表table)。 
1、切換到School資料庫

use School #切換到School資料庫。MongoDB 無需預建立School資料庫,在使用時會自動建立
  • 1

2、建立Collection

db.createCollection(‘teacher‘) #建立一個聚集集合。MongoDB 其實在插入資料的時候,也會自動建立對應的集合,無需預定義集合
  • 1

如下: 
 
3、插入資料 
與資料庫建立類似,插入資料時也會自動建立集合。 
插入資料有兩種方式:insert和save。

db.student.insert({_id:1, sname: ‘zhangsan‘, sage: 20}) #_id可選db.student.save({_id:1, sname: ‘zhangsan‘, sage: 22}) #_id可選
  • 1
  • 2

這兩種方式,其插入的資料中_id欄位均可不寫,會自動產生一個唯一的_id來標識本條資料。而insert和save不同之處在於:在手動插入_id欄位時,如果_id已經存在,insert不做操作,save做更新操作;如果不加_id欄位,兩者作用相同都是插入資料。如下: 
 
添加的資料其結構是鬆散的,只要是bson格式均可,列屬性均不固定,根據添加的資料為準。先定義資料再插入,就可以一次性插入多條資料,如下: 
 
運行完以上例子,student 已自動建立,這也說明 MongoDB 不需要預先定義 collection ,在第一次插入資料後,collection 會自動的建立。如下: 
 
3、尋找資料 
db.youCollection.find(criteria, filterDisplay) 
criteria :查詢條件,可選 
filterDisplay:篩選顯示部分資料,如顯示指定列資料,可選(當選擇時,第一個參數不可省略,若查詢條件為空白,可用{}做預留位置,如下例第三句)

db.student.find()  #查詢所有記錄。相當於:select * from studentdb.student.find({sname: ‘lisi‘})  #查詢sname=‘lisi‘的記錄。相當於: select * from student where sname=‘lisi‘db.student.find({},{sname:1, sage:1}) #查詢指定列sname、sage資料。相當於:select sname,sage from student。sname:1表示返回sname列,預設_id欄位也是返回的,可以添加_id:0(意為不返回_id)寫成{sname: 1, sage: 1,_id:0},就不會返回預設的_id欄位了db.student.find({sname: ‘zhangsan‘, sage: 22}) #and 與條件查詢。相當於:select * from student where sname = ‘zhangsan‘ and sage = 22db.student.find({$or: [{sage: 22}, {sage: 25}]}) #or 條件查詢。相當於:select * from student where sage = 22 or sage = 25
  • 1
  • 2
  • 3
  • 4
  • 5

查詢操作類似,這裡只給出db.student.find({sname: ‘lisi‘})查詢的,如下: 

4、修改資料 
db.youCollection.update(criteria, objNew, upsert, multi ) 
criteria: update的查詢條件,類似sql update查詢內where後面的 
objNew : update的對象和一些更新的操作符(如$set)等,也可以理解為sql update查詢內set後面的。 
upsert : 如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。 
multi: mongodb預設是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。預設false,只修改匹配到的第一條資料。 
其中criteria和objNew是必選參數,upsert和multi選擇性參數 
舉例如下:

db.student.update({sname: ‘lisi‘}, {$set: {sage: 30}}, false, true) #相當於:update student set sage =30 where sname = ‘lisi‘;
  • 1

操作如下: 
 
5、刪除資料

db.student.remove({sname: ‘chenliu‘}) #相當於:delete from student where sname=‘chenliu‘
  • 1

操作如下: 
 
6、退出shell命令模式 
輸入exit或者Ctrl+C退出shell命令模式

Ubuntu下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.