1. 程式人生 > 其它 >第十一章 MongoDB安裝及配置

第十一章 MongoDB安裝及配置

一、什麼是MongoDB ?

MongoDB 是一個基於分散式檔案儲存的資料庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴充套件的高效能資料儲存解決方案。

MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。

在高負載的情況下,新增更多的節點,可以保證伺服器效能。

MongoDB 旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。

MongoDB 將資料儲存為一個文件,資料結構由鍵值(key=>value)對組成。MongoDB 文件類似於 JSON 物件。欄位值可以包含其他文件,陣列及文件陣列。

二、主要特點

  • MongoDB 是一個面向文件儲存的資料庫,操作起來比較簡單和容易。
  • 你可以在MongoDB記錄中設定任何屬性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")來實現更快的排序。
  • 你可以通過本地或者網路建立資料映象,這使得MongoDB有更強的擴充套件性。
  • 如果負載的增加(需要更多的儲存空間和更強的處理能力),它可以分佈在計算機網路中的其他節點上這就是所謂的分片。
  • Mongo支援豐富的查詢表示式。查詢指令使用JSON形式的標記,可輕易查詢文件中內嵌的物件及陣列。
  • MongoDb 使用update()命令可以實現替換完成的文件(資料)或者一些指定的資料欄位 。
  • Mongodb中的Map/reduce主要是用來對資料進行批量處理和聚合操作。
  • Map和Reduce。Map函式呼叫emit(key,value)遍歷集合中所有的記錄,將key與value傳給Reduce函式進行處理。
  • Map函式和Reduce函式是使用Javascript編寫的,並可以通過db.runCommand或mapreduce命令來執行MapReduce操作。
  • GridFS是MongoDB中的一個內建功能,可以用於存放大量小檔案。
  • MongoDB允許在服務端執行指令碼,可以用Javascript編寫某個函式,直接在服務端執行,也可以把函式的定義儲存在服務端,下次直接呼叫即可。
  • MongoDB支援各種程式語言:RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。
  • MongoDB安裝簡單。

三、歷史

  • 2007年10月,MongoDB由10gen團隊所發展。2009年2月首度推出。
  • 2012年05月23日,MongoDB2.1 開發分支釋出了! 該版本採用全新架構,包含諸多增強。
  • 2012年06月06日,MongoDB 2.0.6 釋出,分散式文件資料庫。
  • 2013年04月23日,MongoDB 2.4.3 釋出,此版本包括了一些效能優化,功能增強以及bug修復。
  • 2013年08月20日,MongoDB 2.4.6 釋出。
  • 2013年11月01日,MongoDB 2.4.8 釋出。
  • ……

四、語言支援

MongoDB有官方的驅動如下:

C

C++

C# / .NET

Erlang

Haskell

Java

JavaScript

Lisp

node.JS

Perl

PHP

Python

Ruby

Scala

五、MongoDB 下載

MongoDB 提供了 linux 各發行版本 64 位的安裝包。

http://dl.mongodb.org/dl/linux/x86_64

六、Linux平臺安裝MongoDB

下載完安裝包,並解壓tgz(以下演示的是 64 位 Linux上的安裝)。

(一)下載:

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.1.tgz

(二)解壓:

tar -zxvf mongodb-linux-x86_64-4.0.1.tgz   

(三)更改名稱:

mv mongodb-linux-x86_64-4.0.1  mongodb

(四)新增環境變數:

MongoDB 的可執行檔案位於 bin 目錄下,所以可以將其新增到 PATH 路徑中:

vi /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$MONGODB_HOME/bin:$PATH

(五)建立檔案:

db用來存放資料庫、logs用來存放日誌

cd mongodb
mkdir db logs

(六)新增配置檔案:

cd bin
vi mongodb.conf

內容如下:

dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/logs/mongodb.log
port=27017
fork=true

內容解釋:

dbpath: 資料庫存放位置

logpath:日誌存放位置

port:監聽埠

fork:是否後臺執行

(七)啟動mongodb:

bin目錄下:mongod -f mongodb.conf

關閉命令:mongod --shutdown -f mongodb.conf

(八)進入資料庫:

mongo

(九)檢視資料列表

show dbs;

(十)檢視版本

db.version()

七、測試

1.算術運算

由於它是一個JavaScript shell,您可以執行一些簡單的算術運算:

> 2+2

4

2.建立資料庫:

use testdb1

use testdb1命令是指建立testdb1資料庫,但如果不做任何操作,過期資料庫自動刪除;

因此要保證建立的資料庫有效,需要進行新增資料等操作;

3.插入資料

db.persons.insert({msg:"hello mongodb!"})

db.persons.insert()表示建立一個數據集合名字叫persons(相當於建立一個表);

show collections:檢視當前資料庫中的所有資料集合

db.[documentName].find():查詢指定資料集合的資料;

可以插入欄位不同的資料!!

db.persons.insert({name:"hello silvan!"})

db.persons.findOne():查詢此資料集合的第一條資料

4.批量插入資料

由於使用了js引擎;因此mongo客戶端支援直接寫js

for(var i=0;i<10;i++){
 db.persons.insert({name:"silvan"+i});
};

或自定義id列

for(var i=0;i<10;i++){
 db.persons.insert({_id:i,name:"silvan"+i});
};

5.刪除資料

db.persons.remove({msg:"hello mongodb!"})

表示刪除msg為hello mongodb!的資料;

db.persons.remove({})

表示刪除所有資料。