01 . MongoDB簡介及部署配置

簡介

什麼是MongoDB?

MongoDB 是由C++語言編寫的,是一個基於分散式文件存儲的開源資料庫系統。

在高負載的情況下,添加更多的節點,可以保證伺服器性能。

MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。

MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似於 JSON 對象。欄位值可以包含其他文檔,數組及文檔數組。

主要特點
# MongoDB 是一個面向文檔存儲的資料庫,操作起來比較簡單和容易。
# 你可以在MongoDB記錄中設置任何屬性的索引 (如:FirstName="Sa
meer",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安裝簡單。
MongoDB工具

監控

MongoDB提供了網路和系統監控工具Munin,它作為一個插件應用於MongoDB中。

Gangila是MongoDB高性能的系統監視的工具,它作為一個插件應用於MongoDB中。

基於圖形介面的開源工具 Cacti, 用於查看CPU負載, 網路頻寬利用率,它也提供了一個應用於監控 MongoDB 的插件。

GUI

# Fang of Mongo – 網頁式,由Django和jQuery所構成。
# Futon4Mongo – 一個CouchDB Futon web的mongodb山寨版
# Mongo3 – Ruby寫成。
# MongoHub – 適用於OSX的應用程式。
# Opricot – 一個基於瀏覽器的MongoDB控制台, 由PHP撰寫而成。
# Database Master — Windows的mongodb管理工具
# RockMongo — 最好的PHP語言的MongoDB管理工具,輕量級, 支援多國語言.

MongoDB應用案例

# Craiglist上使用MongoDB的存檔數十億條記錄。
# FourSquare,基於位置的社交網站,在Amazon EC2的伺服器上使用MongoDB分享數據。
# Shutterfly,以互聯網為基礎的社會和個人出版服務,使用MongoDB的各種持久性數據存儲的要求。
# bit.ly, 一個基於Web的網址縮短服務,使用MongoDB的存儲自己的數據。
# spike.com,一個MTV網路的聯營公司, spike.com使用MongoDB的。
# Intuit公司,一個為小企業和個人的軟體和服務提供商,為小型企業使用MongoDB的跟蹤用戶的數據。
# sourceforge.net,資源網站查找,創建和發布開源軟體免費,使用MongoDB的後端存儲。
# etsy.com ,一個購買和出售手工製作物品網站,使用MongoDB。
# 紐約時報,領先的在線新聞門戶網站之一,使用MongoDB。
# CERN,著名的粒子物理研究所,歐洲核子研究中心大型強子對撞機的數據使用MongoDB。

部署MongoDB

下載解壓Mongo.tar包
# 下載地址
//www.mongodb.com/download-center#community
  
curl -O //fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 
tar xf mongodb-linux-x86_64-3.0.6.tgz -C /usr/local/
mv /usr/local/mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb

tail -1 /etc/bashrc 
export PATH=/usr/local/mongodb/bin:$PATH
source /etc/bashrc
創建資料庫目錄

MongoDB的數據存儲在data目錄的db目錄下,但是這個目錄在安裝過程不會自動創建,所以你需要手動創建data目錄,並在data目錄中創建db目錄。

以下實例中我們將data目錄創建於根目錄下(/)。

注意:/data/db 是 MongoDB 默認的啟動的資料庫路徑(–dbpath)。

mkdir -p /data/db
啟動服務

你可以再命令行中執行mongo安裝目錄中的bin目錄執行mongod命令來啟動mongdb服務。

注意:如果你的資料庫目錄不是/data/db,可以通過 –dbpath 來指定。

mongod
2020-06-19T09:56:51.152+0800 I STORAGE  [initandlisten] 
2020-06-19T09:56:51.152+0800 I STORAGE  [initandlisten] ** WARNING: Readahead for /data/db is set to 4096KB
2020-06-19T09:56:51.152+0800 I STORAGE  [initandlisten] **          We suggest setting it to 256KB (512 sectors) or less
2020-06-19T09:56:51.152+0800 I STORAGE  [initandlisten] **          //dochub.mongodb.org/core/readahead
MongoDB後台管理Shell

如果你需要進入MongoDB後台管理,你需要先打開mongodb裝目錄的下的bin目錄,然後執行mongo命令文件。

MongoDB Shell是MongoDB自帶的互動式Javascript shell,用來對MongoDB進行操作和管理的互動式環境。

當你進入mongoDB後台後,它默認會鏈接到 test 文檔(資料庫):

# 啟動mongod服務後,再執行mongo就會進入下面命令行
mongo
MongoDB shell version: 3.0.6
connecting to: test
Welcome to the MongoDB shell.

# 新版本MongDB增加了安全性設計,推薦用戶創建使用資料庫時進行驗證。如果用戶想建立簡單連接,則會提示警示資訊
#創建管理員帳號並設置密碼:
>use admin
switched to db admin
> db.createUser( {user: "firstadmin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]});

Successfully added user: {
    "user" : "firstadmin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}


# 由於它是一個JavaScript shell,還可以運行一些簡單的算術運算
> 1+1
2
> 10000+20000
30000

# 我們可以插入一些簡單的數據,並對插入數據進行檢索
> db.youmen.insert({x:10})
# 這個命令表示將數字10插入到youmen集合的x欄位中
WriteResult({ "nInserted" : 1 })
> db.youmen.find()
{ "_id" : ObjectId("5eec1c706808f6fb8fbda718"), "x" : 10 }
MongoDB Web用戶介面

MongoDB 提供了簡單的 HTTP 用戶介面。 如果你想啟用該功能,需要在啟動的時候指定參數 –rest 。

mongod --dbpath=/data/db --rest

# MongoDB 的 Web 介面訪問埠比服務的埠多1000。
# 如果你的MongoDB運行埠使用默認的27017,你可以在埠號為28017訪問web用戶介面,即地址為://localhost:28017

MongoDB概念解析

SQL術語/概念 MongoDB術語/概念 解釋/說明
database database 資料庫
table collection 資料庫表/集合
row document 數據記錄行/文檔
column field 數據欄位/域
index index 索引
table joins 表連接,MongoDB不支援
primary key primary key 主鍵,MongoDB自動將_id欄位設置為主鍵

通過下圖實例,我們也可以直觀的了解Mongo中的一些概念

資料庫

一個mongodb中可以建立多個資料庫。

MongoDB的默認資料庫為”db”,該資料庫存儲在data目錄中。

MongoDB的單個實例可以容納多個獨立的資料庫,每一個都有自己的集合和許可權,不同的資料庫也放置在不同的文件中。

“show dbs” 命令可以顯示所有數據的列表。

> show dbs
local  0.078GB
test   0.078GB

# db顯示當前資料庫對象或集合
> db
test

# use命令,連接到一個指定的資料庫
> use local
switched to db local
> db
local

資料庫也通過名字來標識。資料庫名可以是滿足以下條件的任意UTF-8字元串。

# 不能是空字元串("")。
# 不得含有' '(空格)、.、$、/、\和\0 (空字元)。
# 應全部小寫。
# 最多64位元組。

有一些資料庫名是保留的,可以直接訪問這些有特殊作用的資料庫。

admin: 從許可權的角度來看,這是”root”資料庫。要是將一個用戶添加到這個資料庫,這個用戶自動繼承所有資料庫的許可權。一些特定的伺服器端命令也只能從這個資料庫運行,比如列出所有的資料庫或者關閉伺服器。

local: 這個數據永遠不會被複制,可以用來存儲限於本地單台伺服器的任意集合

config: 當Mongo用於分片設置時,config資料庫在內部使用,用於保存分片的相關資訊。

文檔(Document)

文檔是一組鍵值(key-value)對(即 BSON)。MongoDB 的文檔不需要設置相同的欄位,並且相同的欄位不需要相同的數據類型,這與關係型資料庫有很大的區別,也是 MongoDB 非常突出的特點。

一個簡單的文檔例子如下:

{"site":"www.youmen.com", "name":"幽夢"}

下表列出了RDBMS與MongoDB對應的術語

RDBMS MongoDB
資料庫 資料庫
表格 集合
文檔
欄位
表聯合 嵌入文檔
主鍵 主鍵 (MongoDB 提供了 key 為 _id )
資料庫服務和客戶端
Mysqld/Oracle mongod
mysql/sqlplus mongo

需要注意的是

# 1. 文檔中的鍵/值對是有序的。
# 2. 文檔中的值不僅可以是在雙引號裡面的字元串,還可以是其他幾種數據類型(甚至可以是整個嵌入的文檔)。
# 3. MongoDB區分類型和大小寫。
# 4. MongoDB的文檔不能有重複的鍵。
# 5. 文檔的鍵是字元串。除了少數例外情況,鍵可以使用任意UTF-8字元。

# 文檔鍵命名規範:

# 鍵不能含有\0 (空字元)。這個字元用來表示鍵的結尾。
# .和$有特別的意義,只有在特定環境下才能使用。
# 以下劃線"_"開頭的鍵是保留的(不是嚴格要求的)。
集合

集合就是 MongoDB 文檔組,類似於 RDBMS (關係資料庫管理系統:Relational Database Management System)中的表格。

集合存在於資料庫中,集合沒有固定的結構,這意味著你在對集合可以插入不同格式和類型的數據,但通常情況下我們插入集合的數據都會有一定的關聯性。

比如,我們可以將以下不同數據結構的文檔插入到集合中:

{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.youmen.com","name":"幽夢","num":5}

當第一個文檔被插入時,集合就會被創建

合法的集合名

# 集合名不能是空字元串""。
# 集合名不能含有\0字元(空字元),這個字元表示集合名的結尾。
# 集合名不能以"system."開頭,這是為系統集合保留的前綴。
# 用戶創建的集合名字不能含有保留字元。有些驅動程式的確支援在集合名裡面包含,這是因為某些系統生成的集合中包含該字元。除非你要訪問這種系統創建的集合,否則千萬不要在名字里出現$。
Capped Collections

Capped collections 就是固定大小的collection。

它有很高的性能以及隊列過期的特性(過期按照插入的順序). 有點和 “RRD” 概念類似。

Capped collections 是高性能自動的維護對象的插入順序。它非常適合類似記錄日誌的功能和標準的 collection 不同,你必須要顯式的創建一個capped collection,指定一個 collection 的大小,單位是位元組。collection 的數據存儲空間值提前分配的。

Capped collections 可以按照文檔的插入順序保存到集合中,而且這些文檔在磁碟上存放位置也是按照插入順序來保存的,所以當我們更新Capped collections 中文檔的時候,更新後的文檔不可以超過之前文檔的大小,這樣話就可以確保所有文檔在磁碟上的位置一直保持不變。

由於 Capped collection 是按照文檔的插入順序而不是使用索引確定插入位置,這樣的話可以提高增添數據的效率。MongoDB 的操作日誌文件 oplog.rs 就是利用 Capped Collection 來實現的。

要注意的是指定的存儲大小包含了資料庫的頭資訊。

db.createCollection("mycoll", {capped:true, size:100000})

在 capped collection 中,你能添加新的對象。

能進行更新,然而,對象不會增加存儲空間。如果增加,更新就會失敗 。

使用 Capped Collection 不能刪除一個文檔,可以使用 drop() 方法刪除 collection 所有的行。

刪除之後,你必須顯式的重新創建這個 collection。

在32bit機器中,capped collection 最大存儲為 1e9( 1X109)個位元組。

元數據

資料庫的資訊是存儲在集合中。它們使用了系統的命名空間:

dbname.system.*

在MongoDB資料庫中名字空間 <dbname>.system.* 是包含多種系統資訊的特殊集合(Collection),如下:

集合命名空間 描述
dbname.system.namespaces 列出所有名字空間。
dbname.system.indexes 列出所有索引。
dbname.system.profile 包含資料庫概要(profile)資訊。
dbname.system.users 列出所有可訪問資料庫的用戶。
dbname.local.sources 包含複製對端(slave)的伺服器資訊和狀態。

對於修改系統集合中的對象有如下限制。

在{{system.indexes}}插入數據,可以創建索引。但除此之外該表資訊是不可變的(特殊的drop index命令將自動更新相關資訊)。

{{system.users}}是可修改的。 {{system.profile}}是可刪除的。

MongoDB數據類型
數據類型 描述
String 字元串。存儲數據常用的數據類型。在 MongoDB 中,UTF-8 編碼的字元串才是合法的。
Integer 整型數值。用於存儲數值。根據你所採用的伺服器,可分為 32 位或 64 位。
Boolean 布爾值。用於存儲布爾值(真/假)。
Double 雙精度浮點值。用於存儲浮點值。
Min/Max keys 將一個值與 BSON(二進位的 JSON)元素的最低值和最高值相對比。
Array 用於將數組或列表或多個值存儲為一個鍵。
Timestamp 時間戳。記錄文檔修改或添加的具體時間。
Object 用於內嵌文檔。
Null 用於創建空值。
Symbol 符號。該數據類型基本上等同於字元串類型,但不同的是,它一般用於採用特殊符號類型的語言。
Date 日期時間。用 UNIX 時間格式來存儲當前日期或時間。你可以指定自己的日期時間:創建 Date 對象,傳入年月日資訊。
Object ID 對象 ID。用於創建文檔的 ID。
Binary Data 二進位數據。用於存儲二進位數據。
Code 程式碼類型。用於在文檔中存儲 JavaScript 程式碼。
Regular expression 正則表達式類型。用於存儲正則表達式。

下面說明幾種重要的數據類型

ObjectId 類似唯一主鍵,可以很快的去生成和排序,包含 12 bytes,含義是:

# 前 4 個位元組表示創建 **unix** 時間戳,格林尼治時間 **UTC** 時間,比北京時間晚了 8 個小時
# 接下來的 3 個位元組是機器標識碼
# 緊接的兩個位元組由進程 id 組成 PID
# 最後三個位元組是隨機

MongoDB 中存儲的文檔必須有一個 _id 鍵。這個鍵的值可以是任何類型的,默認是個 ObjectId 對象

由於 ObjectId 中保存了創建的時間戳,所以你不需要為你的文檔保存時間戳欄位,你可以通過 getTimestamp 函數來獲取文檔的創建時間:

> var newObject = ObjectId()
> newObject.getTimestamp()
ISODate("2020-06-19T02:44:34Z")

Objectid轉換為字元串

> newObject.str
5eec2692383608904cb30cb6
字元串

BSON 字元串都是 UTF-8 編碼

時間戳

BSON 有一個特殊的時間戳類型用於 MongoDB 內部使用,與普通的 日期 類型不相關。 時間戳值是一個 64 位的值。其中:

# 前32位是一個 time_t 值(與Unix新紀元相差的秒數)
# 後32位是在某秒中操作的一個遞增的`序數`

在單個 mongod 實例中,時間戳值通常是唯一的。

在複製集中, oplog 有一個 ts 欄位。這個欄位中的值使用BSON時間戳表示了操作時間。

BSON 時間戳類型主要用於 MongoDB 內部使用。在大多數情況下的應用開發中,你可以使用 BSON 日期類型。

日期

表示當前距離 Unix新紀元(1970年1月1日)的毫秒數。日期類型是有符號的, 負數表示 1970 年之前的日期。

> var mydate1 = new Date()
> mydate1
ISODate("2020-06-19T02:49:22.128Z")

        
> var mydate2 = ISODate()
> mydate2
ISODate("2020-06-19T02:47:44.664Z")        

# 這樣創建的時間是日期類型,可以使用 JS 中的 Date 類型的方法。
# 返回一個時間類型的字元串:
> var mydate1str = mydate1.toString()
> mydate1str
Fri Jun 19 2020 10:49:22 GMT+0800 (CST)
> typeof mydate1str
string

OR

> Date()
Fri Jun 19 2020 10:53:15 GMT+0800 (CST)

MongoDB常用命令及配置文件參數詳解

命令參數詳解
--logpath    				# 日誌文件路徑
--master 						# 指定為主機器
--slave 						# 指定為從機器
--source 						# 指定主機器的IP地址
--pologSize 				# 指定日誌文件大小不超過64M.因為resync是非常操作量大且耗時,最好通過設置一個足夠大的oplogSize來避免resync(默認的 oplog大小是空閑磁碟大小的5%)。
--logappend 				# 日誌文件末尾添加
--port 							# 啟用埠號
--fork 							# 在後台運行
--only 							# 指定只複製哪一個資料庫
--slavedelay 				# 指從複製檢測的時間間隔
--auth 							# 是否需要驗證許可權登錄(用戶名和密碼)

-h [ --help ]       #      show this usage information
--version            #     show version information
-f [ --config ] arg  #     configuration file specifying additional options
--port arg            #    specify port number
--bind_ip arg         #    local ip address to bind listener - all local ips
                           bound by default
-v [ --verbose ]       #   be more verbose (include multiple times for more
                           verbosity e.g. -vvvvv)
--dbpath arg (=/data/db/)   # directory for datafiles    指定數據存放目錄
--quiet                  # quieter output   靜默模式
--logpath arg            # file to send all output to instead of stdout   指定日誌存放目錄
--logappend              # appnd to logpath instead of over-writing 指定日誌是以追加還是以覆蓋的方式寫入日誌文件
--fork                   # fork server process   以創建子進程的方式運行
--cpu                    # periodically show cpu and iowait utilization 周期性的顯示cpu和io的使用情況
--noauth                 # run without security 無認證模式運行
--auth                   # run with security 認證模式運行
--objcheck               # inspect client data for validity on receipt 檢查客戶端輸入數據的有效性檢查
--quota                  # enable db quota management   開始資料庫配額的管理
--quotaFiles arg         # number of files allower per db, requires --quota 規定每個資料庫允許的文件數
--appsrvpath arg         # root directory for the babble app server 
--nocursors              # diagnostic/debugging option 調試診斷選項
--nohints                # ignore query hints 忽略查詢命中率
--nohttpinterface        # disable http interface 關閉http介面,默認是28017
--noscripting           #  disable scripting engine 關閉腳本引擎
--noprealloc             # disable data file preallocation 關閉資料庫文件大小預分配
--smallfiles            #  use a smaller default file size 使用較小的默認文件大小
--nssize arg (=16)       # .ns file size (in MB) for new databases 新資料庫ns文件的默認大小
--diaglog arg            # 0=off 1=W 2=R 3=both 7=W+some reads 提供的方式,是只讀,只寫,還是讀寫都行,還是主要寫+部分的讀模式
--sysinfo                # print some diagnostic system information 列印系統診斷資訊
--upgrade                # upgrade db if needed 如果需要就更新資料庫
--repair                 # run repair on all dbs 修復所有的資料庫
--notablescan            # do not allow table scans 不運行表掃描
--syncdelay arg (=60)    # seconds between disk syncs (0 for never) 系統同步刷新磁碟的時間,默認是60s
 
Replication options:
--master             # master mode 主複製模式
--slave              # slave mode 從複製模式
--source arg         # when slave: specify master as <server:port> 當為從時,指定主的地址和埠
--only arg           # when slave: specify a single database to replicate 當為從時,指定需要從主複製的單一庫
--pairwith arg       # address of server to pair with
--arbiter arg        # address of arbiter server 仲裁伺服器,在主主中和pair中用到
--autoresync         # automatically resync if slave data is stale 自動同步從的數據
--oplogSize arg      # size limit (in MB) for op log 指定操作日誌的大小
--opIdMem arg        # size limit (in bytes) for in memory storage of op ids指定存儲操作日誌的記憶體大小
 
Sharding options:
--configsvr          # declare this is a config db of a cluster 指定shard中的配置伺服器
--shardsvr           # declare this is a shard db of a cluster 指定shard伺服器

其他配置參數含義
--quiet	# 安靜輸出
--port arg	# 指定服務埠號,默認埠27017
--bind_ip arg	# 綁定服務IP,若綁定127.0.0.1,則只能本機訪問,不指定默認本地所有IP
--logpath arg	# 指定MongoDB日誌文件,注意是指定文件不是目錄
--logappend	# 使用追加的方式寫日誌
--pidfilepath arg	# PID File 的完整路徑,如果沒有設置,則沒有PID文件
--keyFile arg	# 集群的私鑰的完整路徑,只對於Replica Set 架構有效
--unixSocketPrefix arg	# UNIX域套接字替代目錄,(默認為 /tmp)
--fork	# 以守護進程的方式運行MongoDB,創建伺服器進程
--auth	# 啟用驗證
--cpu	# 定期顯示CPU的CPU利用率和iowait
--dbpath arg	# 指定資料庫路徑
--diaglog arg	# diaglog選項 0=off 1=W 2=R 3=both 7=W+some reads
--directoryperdb	# 設置每個資料庫將被保存在一個單獨的目錄
--journal	# 啟用日誌選項,MongoDB的數據操作將會寫入到journal文件夾的文件里
--journalOptions arg	# 啟用日誌診斷選項
--ipv6	# 啟用IPv6選項
--jsonp	# 允許JSONP形式通過HTTP訪問(有安全影響)
--maxConns arg	# 最大同時連接數 默認2000
--noauth	# 不啟用驗證
--nohttpinterface	# 關閉http介面,默認關閉27018埠訪問
--noprealloc	# 禁用數據文件預分配(往往影響性能)
--noscripting	# 禁用腳本引擎
--notablescan	# 不允許表掃描
--nounixsocket	# 禁用Unix套接字監聽
--nssize arg (=16)	# 設置信資料庫.ns文件大小(MB)
--objcheck	# 在收到客戶數據,檢查的有效性,
--profile arg	# 檔案參數 0=off 1=slow, 2=all
--quota	# 限制每個資料庫的文件數,設置默認為8
--quotaFiles arg	# number of files allower per db, requires --quota
--rest	# 開啟簡單的rest API
--repair	# 修復所有資料庫run repair on all dbs
--repairpath arg	# 修復庫生成的文件的目錄,默認為目錄名稱dbpath
--slowms arg (=100)	# value of slow for profile and console log
--smallfiles	# 使用較小的默認文件
--syncdelay arg (=60)	# 數據寫入磁碟的時間秒數(0=never,不推薦)
--sysinfo	# 列印一些診斷系統資訊
--upgrade	# 如果需要升級資料庫

#Replicaton 參數
--fastsync	# 從一個dbpath里啟用從庫複製服務,該dbpath的資料庫是主庫的快照,可用於快速啟用同步
--autoresync	# 如果從庫與主庫同步數據差得多,自動重新同步,
--oplogSize arg	# 設置oplog的大小(MB)

#主/從參數
--master	# 主庫模式
--slave	# 從庫模式
--source arg	# 從庫 埠號
--only arg	# 指定單一的資料庫複製
--slavedelay arg	# 設置從庫同步主庫的延遲時間

#Replica set(副本集)選項:
--replSet arg	# 設置副本集名稱

#Sharding(分片)選項
--configsvr	# 聲明這是一個集群的config服務,默認埠27019,默認目錄/data/configdb
--shardsvr	# 聲明這是一個集群的分片,默認埠27018
--noMoveParanoia	# 關閉偏執為moveChunk數據保存
配置文件參數詳解
# 簡單示例
# 資料庫數據存放目錄
dbpath=/usr/local/mongodb/data
# 資料庫日誌存放目錄
logpath=/usr/local/mongodb/logs/mongodb.log 
# 以追加的方式記錄日誌
logappend = true
# 埠號 默認為27017
port=27017 
# 以後台方式運行進程
fork=true 
# 開啟用戶認證
auth=true
# 關閉http介面,默認關閉http埠訪問
#nohttpinterface=true
# mongodb所綁定的ip地址
#bind_ip = 127.0.0.1 
# 啟用日誌文件,默認啟用
journal=true 
# 這個選項可以過濾掉一些無用的日誌資訊,若需要調試使用請設置為false
quiet=true