01 . MongoDB簡介及部署配置

men發表於2020-06-19

簡介

什麼是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包
# 下載地址
https://www.mongodb.com/download-center#community
  
curl -O https://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] **          http://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使用者介面,即地址為:http://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

相關文章