概念
MongoDB 是一個跨平臺的,面向文檔的數(shù)據(jù)庫,提供高性能,高可用性和可擴展性方便。 MongoDB 工作在收集和文件的概念。
什么是NoSql?
NoSql,全稱是 Not Only Sql,指的是非關系型的數(shù)據(jù)庫。下一代數(shù)據(jù)庫主要解決幾個要點:非關系型的、分布式的、開源的、水平可擴展的。原始的目的是為了大規(guī)模web應用,這場運動開始于2009年初,通常特性應用如:模式自由、支持簡易復制、簡單的API、最終的一致性(非ACID)、大容量數(shù)據(jù)等。NoSQL被我們用得最多的當數(shù)key-value存儲,當然還有其他的文檔型的、列存儲、圖型數(shù)據(jù)庫、xml數(shù)據(jù)庫等。
為什么要使用MongoDB
JSON風格文件的形式,面向文檔存儲:數(shù)據(jù)存儲
- 對任何屬性可索引
- 復制和高可用性
- 自動分片
- 豐富的查詢
- 快速就地更新
MongoDB的專業(yè)技術支持
應該在哪里使用MongoDB?
- 大數(shù)據(jù)
- 內(nèi)容管理和交付
- 移動和社交基礎設施
- 用戶數(shù)據(jù)管理
- 數(shù)據(jù)平臺
MongoDB是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數(shù)據(jù)類型。
基本的用法是存儲JSON數(shù)據(jù),這很適合JavaScript程序。其特性如下:
1. 沒有表結(jié)構的概念,每條記錄可以有完全不同的結(jié)構
2. 業(yè)務開發(fā)方便快捷
3. sql數(shù)據(jù)庫需要事先定義表結(jié)構再使用
在Mac下安裝MongoDB
第一種、用瀏覽器或者第三方工具下載
當前版本的下載地址: http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.4.6.tgz
或者第二種、打開終端,使用以下命令行下載:
curl http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.4.6.tgz > mongodb.tgz
安裝成功之后,“mongod”命令啟動mongo數(shù)據(jù)庫。瀏覽器下輸入http://127.0.0.1:28017 如果能正常顯示mongo數(shù)據(jù)庫的信息,則表示啟動成功。
成功后的界面:
安裝步驟
1.首先在終端輸入ls,列出目錄,找到你的mongodb文件,以tgz結(jié)尾的
2.打開終端,輸入tar -zxvf mongodb-osx-x86_64-2.4.6,當然各自的版本號自己對應正確了啊。
3.將解壓的安裝文件移動到你所喜歡的位置:
mv -n ~/Downloads/mongodb-osx-x86_64-2.4.6 ~/Applications/mongodb/
我的解壓目錄是Downloads,默認移到Applications的mongodb文件夾是看不見的
4、在根目錄 / 下創(chuàng)建 data/db 目錄,用于放置mongodb數(shù)據(jù),并且給該目錄設置權限
sudo mkdir -p /data/db
sudo chown -R trigkit4 /data
5.啟動mongodb 服務
打開終端,輸入cd Applications/mongodb/bin,回車后,再輸入./mongod
6.打開另外一個終端,輸入Applications/mongodb/bin,回車,輸入 ./mongo
文檔
文檔是MongoDB的核心概念,多個鍵及其關聯(lián)的值有序地放置在一起便是文檔。 在js里,文檔表示為對象:
{"greenting" : "Hello,world!"}
這個對象只有一個鍵"greeting",其對應的值"Hello,world!"
文檔的鍵是字符串,除少數(shù)例外情況,鍵可以使用任意UTF-8字符:
- 鍵不能含有\(zhòng)0(空字符)。這個字符用來表示鍵的結(jié)尾
- .和$有特別的意義,只有當特定環(huán)境下才能使用,通常來說是被保留了
- 以下劃線"_"開頭的鍵是保留的,雖然不是嚴格要求的
MongoDB不單區(qū)分類型,也區(qū)分大小寫,還有,MongoDB的文檔不能有重復的鍵,例如下面的文檔是非法的:
{"greeting":"Hello,world!","greeting":"Hello,mongoDB!"}
集合
集合是一組文檔。如果說MongoDB中的文檔類似于關系型數(shù)據(jù)庫中的行,那么集合就如同表。
無模式
集合是無模式的。這意味著集合里面的文檔可以是各式各樣的,例如下面兩個文檔可以存在于同一個集合里面:
{"greeting": "Hello,world!"}
{"foo": 5}
命名
我們可以通過名字來標示集合。集合名可以是滿足下列條件的UTF-8條件
- 集合名不能是空字符串""。
- 集合名不能含有\(zhòng)0字符(空字符)
- 集合名不能以"system."開頭,這是為系統(tǒng)集合保留的前綴
- 用戶創(chuàng)建的集合名字不能含有保留字符$
子集合
組織集合的一種慣例是使用"."字符分開的按命名空間劃分的子集合。
Shell中的基本操作
在shell查看數(shù)據(jù)會用到4個基本操作:創(chuàng)建、讀取、更新和刪除(CRUD)
數(shù)據(jù)庫
MongoDB中多個文檔組成集合,同樣多個集合可以組成數(shù)據(jù)庫。一個MongoDB實例可以承載多個數(shù)據(jù)庫,數(shù)據(jù)庫名可以是滿足以下條件的任意UTF-8字符串
- 不能是空字符串("")
- 不能含有''(空格)、.、$、/、\和\0(空字符)
- 應全部小寫
- 最多64字節(jié)
數(shù)據(jù)類型
MongoDB支持許多數(shù)據(jù)類型的列表下面給出:
- String : 這是最常用的數(shù)據(jù)類型來存儲數(shù)據(jù)。在MongoDB中的字符串必須是有效的UTF-8。
- Integer : 這種類型是用來存儲一個數(shù)值。整數(shù)可以是32位或64位,這取決于您的服務器。
- Boolean : 此類型用于存儲一個布爾值 (true/ false) 。
- Double : 這種類型是用來存儲浮點值。
- Min/ Max keys : 這種類型被用來對BSON元素的最低和最高值比較。
- Arrays : 使用此類型的數(shù)組或列表或多個值存儲到一個鍵。
- Timestamp : 時間戳。這可以方便記錄時的文件已被修改或添加。
- Object : 此數(shù)據(jù)類型用于嵌入式的文件。
- Null : 這種類型是用來存儲一個Null值。
- Symbol : 此數(shù)據(jù)類型用于字符串相同,但它通常是保留給特定符號類型的語言使用。
- Date : 此數(shù)據(jù)類型用于存儲當前日期或時間的UNIX時間格式??梢灾付ㄗ约旱娜掌诤蜁r間,日期和年,月,日到創(chuàng)建對象。
- Object ID : 此數(shù)據(jù)類型用于存儲文檔的ID。
- Binary data : 此數(shù)據(jù)類型用于存儲二進制數(shù)據(jù)。
- Code : 此數(shù)據(jù)類型用于存儲到文檔中的JavaScript代碼。
- Regular expression : 此數(shù)據(jù)類型用于存儲正則表達式
MongoDB的基本命令
use 命令
MongoDB use DATABASE_NAME 用于創(chuàng)建數(shù)據(jù)庫。該命令將創(chuàng)建一個新的數(shù)據(jù)庫,如果它不存在,否則將返回現(xiàn)有的數(shù)據(jù)庫。
dropDatabase() 方法
MongoDB db.dropDatabase() 命令是用來刪除一個現(xiàn)有的數(shù)據(jù)庫。
dropDatabase() 命令的基本語法如下:
db.dropDatabase()
drop() 方法
MongoDB 的 db.collection.drop() 是用來從數(shù)據(jù)庫中刪除一個集合。
insert() 方法
要插入數(shù)據(jù)到 MongoDB 集合,需要使用 MongoDB 的 insert() 或 save() 方法。
find() 方法
要從MongoDB 查詢集合數(shù)據(jù),需要使用MongoDB 的 find() 方法。
pretty() 方法
結(jié)果顯示在一個格式化的方式,可以使用 pretty() 方法.
Limit() 方法
要限制 MongoDB 中的記錄,需要使用 limit() 方法。 limit() 方法接受一個數(shù)字型的參數(shù),這是要顯示的文檔數(shù)。
語法:
limit() 方法的基本語法如下
>db.COLLECTION_NAME.find().limit(NUMBER)
MongoDB 數(shù)據(jù)轉(zhuǎn)儲
創(chuàng)建備份MongoDB中的數(shù)據(jù)庫,應該使用mongodump命令。
mongodump命令的基本語法如下:
恢復數(shù)據(jù)
恢復備份數(shù)據(jù)使用MongoDB 的 mongorerstore 命令。此命令將恢復所有的數(shù)據(jù)從備份目錄。
語法:
mongorestore命令的基本語法
剩下的方法或命令大家都可以去網(wǎng)上搜索的,這里就不接著贅述了啊。
您可能感興趣的文章:- MongoDB的安裝及配置文件選項全解
- Mac中mongoDB的安裝與卸載步驟詳解
- mac下安裝和配置mongodb的步驟詳解
- mac下使用brew 安裝mongodb的方法教程
- MongoDB的安裝方法圖文教程
- 在mac系統(tǒng)下安裝與配置mongoDB數(shù)據(jù)庫