1. 程式人生 > >MongoDB學習01:入門

MongoDB學習01:入門

相關網站:www.mongodb.org
中文網:http://www.mongoing.com/
中文手冊:http://www.mongoing.com/docs/
BUG反饋:https://jira.mongodb.org/projects/TOOLS/

資料庫分類

  • SQL資料庫 支援SQL語言的資料庫
    實時一致;事務;多表聯合查詢
  • NoSql資料庫 不支援SQL語言
    簡單便捷;方便擴充套件;更好的效能

為什麼選擇MongoDB

無資料結構限制

  • 沒有表結構的概念,每條記錄可以有完全不同的結構
  • 業務開發方便快捷
  • 而sql資料庫需要事先定義表結構再使用

完全的索引支援

  • redis的key-value
  • hbase的單索引,二級索引需要自己實現
  • 單鍵索引,多鍵索引:{x:1,y:1}
  • 陣列索引:
  • 全文索引:
  • 地理位置索引:2D

方便的冗餘與擴充套件

  • 複製集保證資料安全
  • 分片擴充套件資料規模

良好的支援

  • 完善的文件。
  • 齊全的驅動支援

MongoDB安裝

  • 環境centos7

原始碼編譯

  • github下載包wget -c ,並解壓
  • 進入包中,輸入scons all 進行編譯
    – 這裡要先安裝python,再安裝scons,最後方可安裝mongodb

官網下載已經壓縮包

新建一個mongodb資料庫

  • 新建mongdb_test資料夾
  • 在mongdb_test下面新建bin,data,conf,logs資料夾
  • 將mongdb安裝資料夾下的bin/mongod 複製到mongodb_test/bin下面
    vi mongod.conf
    mongod.conf的內容如下
    port = 12345
    dbpath = data
    logpath = logs/mongod.log
    fork = true #表示是一個後臺程序
  • 啟動資料庫./bin/mongod -f conf/mongod.conf
    出現:
    about to fork child process, waiting until server is ready for connections.
    forked process: 12364

    child process started successfully, parent exiting
    表示成功

連線資料庫test

  • 將mongdb安裝資料夾下的bin/mongo 複製到mongodb_test/bin下面
  • 執行./bin/mongo 127.0.0.1:12345
    關閉mongodb服務:
    db.shutdownServer()或者kill -15
  • 連線資料庫的另一方法:
    mongo --nodb #啟用mongo shell
    conn = new Mongo("127.0.0.1:12345")
    db = conn.getDB("test02")

Mongo資料庫執行操作

  1. mongo script1.js script2.js script3.js依次執行三個指令碼。
  2. mongo --quiet 127.0.0.1:12345/test02 script1.js script2.js script3.js在資料庫test02上依次執行三個指令碼
  3. load("script01.js")
  4. 定義一個connectTo()函式
// defineConnectTo.js
var connectTo = function(port,dbname){
    if(!port){
        port = 27017
    }
    if(!dbname){
        dbname = "test"
    }

    db = connect("localhost:"+port+"/"+dbname);
    return db;
}; 

然後執行typeof connectTo #驗證是否已經含有connectTo()
load('defineConnectTo.js')
typeof connectTo
5. 使用run(“ls”,”-l”,”/home/myUser/local/myscripts/”)
侷限性大,不支援管道。

Markdown及擴充套件

Markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的HTML頁面。 —— [ 維基百科 ]

使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立一個連結等,詳細語法參考幫助?。

本編輯器支援 Markdown Extra ,  擴充套件了很多好用的功能。具體請參考Github.

表格

Markdown Extra 表格語法:

專案 價格
Computer $1600
Phone $12
Pipe $1

可以使用冒號來定義對齊方式:

專案 價格 數量
Computer 1600 元 5
Phone 12 元 12
Pipe 1 元 234

定義列表

Markdown Extra 定義列表語法:
專案1
專案2
定義 A
定義 B
專案3
定義 C

定義 D

定義D內容

程式碼塊

程式碼塊語法遵循標準markdown程式碼,例如:

@requires_authorization
def somefunc(param1='', param2=0):
    '''A docstring'''
    if param1 > param2: # interesting
        print 'Greater'
    return (param2 - param1 + 1) or None
class SomeClass:
    pass
>>> message = '''interpreter
... prompt'''

腳註

生成一個腳註1.

目錄

[TOC]來生成目錄:

數學公式

使用MathJax渲染LaTex 數學公式,詳見math.stackexchange.com.

  • 行內公式,數學公式為: Γ(n)=(n1)!nN
  • 塊級公式:

x=b±b24ac2a

更多LaTex語法請參考 這兒.

UML 圖:

可以渲染序列圖:

或者流程圖:

  • 關於 序列圖 語法,參考 這兒,
  • 關於 流程圖 語法,參考 這兒.

離線寫部落格

即使使用者在沒有網路的情況下,也可以通過本編輯器離線寫部落格(直接在曾經使用過的瀏覽器中輸入write.blog.csdn.net/mdeditor即可。Markdown編輯器使用瀏覽器離線儲存將內容儲存在本地。

使用者寫部落格的過程中,內容實時儲存在瀏覽器快取中,在使用者關閉瀏覽器或者其它異常情況下,內容不會丟失。使用者再次開啟瀏覽器時,會顯示上次使用者正在編輯的沒有發表的內容。

部落格發表後,本地快取將被刪除。 

使用者可以選擇 把正在寫的部落格儲存到伺服器草稿箱,即使換瀏覽器或者清除快取,內容也不會丟失。

注意:雖然瀏覽器儲存大部分時候都比較可靠,但為了您的資料安全,在聯網後,請務必及時發表或者儲存到伺服器草稿箱

瀏覽器相容

  1. 目前,本編輯器對Chrome瀏覽器支援最為完整。建議大家使用較新版本的Chrome。
  2. IE9以下不支援
  3. IE9,10,11存在以下問題
    1. 不支援離線功能
    2. IE9不支援檔案匯入匯出
    3. IE10不支援拖拽檔案匯入

Grammar ::= Production*
Production ::= NCName ‘::=’ ( Choice | Link )
NCName ::= [http://www.w3.org/TR/xml-names/#NT-NCName]
Choice ::= SequenceOrDifference ( ‘|’ SequenceOrDifference )*
SequenceOrDifference ::= (Item ( ‘-’ Item | Item* ))?
Item ::= Primary ( ‘?’ | ‘*’ | ‘+’ )?
Primary ::= NCName | StringLiteral | CharCode | CharClass | ‘(’ Choice ‘)’
StringLiteral ::= ‘”’ [^”]* ‘”’ | “’” [^’]* “’” /* ws: explicit */
CharCode ::= ‘#x’ [0-9a-fA-F]+ /* ws: explicit */
CharClass ::= ‘[’ ‘^’? ( Char | CharCode | CharRange | CharCodeRange )+ ‘]’ /* ws: explicit */
Char ::= [http://www.w3.org/TR/xml#NT-Char]
CharRange ::= Char ‘-’ ( Char - ‘]’ ) /* ws: explicit */
CharCodeRange ::= CharCode ‘-’ CharCode /* ws: explicit */
Link ::= ‘[’ URL ‘]’
URL ::= [^#x5D:/?#]+ ‘://’ [^#x5D#]+ (‘#’ NCName)? /* ws: explicit */
Whitespace ::= S | Comment
S ::= #x9 | #xA | #xD | #x20
Comment ::= ‘/’ ( [^] | ‘‘+ [^/] )* ‘/’ / ws: explicit */


  1. 這裡是 腳註內容.