標籤:osx restore header ref 類型 pos x86 str 關係型資料庫
轉載自1190000002547229 概念
MongoDB
是一個跨平台的,面向文檔的資料庫,提供高效能,高可用性和可擴充性方便。 MongoDB
工作在收集和檔案的概念。
什麼是NoSql?
NoSql
,全稱是 Not Only Sql
,指的是非關係型的資料庫。下一代資料庫主要解決幾個要點:非關係型的、分布式的、開源的、水平可擴充的。原始的目的是為了大規模web
應用,這場運動開始於2009年初,通常特性應用如:模式自由、支援簡易複製、簡單的API
、最終的一致性(非ACID
)、大容量資料等。NoSQL
被我們用得最多的當數key-value
儲存,當然還有其他的文檔型的、列儲存、圖型資料庫、xml
資料庫等。
為什麼要使用MongoDB
JSON風格檔案的形式,面向文檔儲存:資料存放區對任何屬性可索引複製和高可用性自動分區豐富的查詢快速就地更新MongoDB的專業支援人員
應該在哪裡使用MongoDB?
大資料內容管理和交付移動和社交基礎設施使用者資料管理資料平台
MongoDB
是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。他支援的資料結構非常鬆散,是類似json
的bson
格式,因此可以儲存比較複雜的資料類型。
基本的用法是儲存JSON
資料,這很適合JavaScript
程式。其特性如下:
1. 沒有表結構的概念,每條記錄可以有完全不同的結構 2. 業務開發方便快捷 3. sql資料庫需要事先定義表結構再使用
在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
資料庫。瀏覽器下輸入http://127.0.0.1:28017 如果能正常顯示mongo
資料庫的資訊,則表示啟動成功。
成功後的介面:
安裝步驟
1.首先在終端輸入ls
,列出目錄,找到你的mongodb
檔案,以tgz
結尾的
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、在根目錄 / 下建立 data/db
目錄,用於放置mongodb
資料,並且給該目錄設定許可權
sudo mkdir -p /data/dbsudo chown -R trigkit4 /data
5.啟動mongodb
服務
開啟終端,輸入cd Applications/mongodb/bin
,斷行符號後,再輸入./mongod
6.開啟另外一個終端,輸入Applications/mongodb/bin
,斷行符號,輸入 ./mongo
文檔
文檔是MongoDB
的核心概念,多個鍵及其關聯的值有序地放置在一起便是文檔。 在js
裡,文檔表示為對象:
{"greenting" : "Hello,world!"}
這個對象只有一個鍵"greeting
",其對應的值"Hello,world!
"
文檔的鍵是字串,除少數例外情況,鍵可以使用任意UTF-8
字元:
- 鍵不能含有\0(Null 字元)。這個字元用來表示鍵的結尾 - .和$有特別的意義,只有當特定環境下才能使用,通常來說是被保留了 - 以底線"_"開頭的鍵是保留的,雖然不是嚴格要求的
MongoDB
不單區分類型,也區分大小寫,還有,MongoDB
的文檔不能有重複的鍵,例如下面的文檔是非法的:
{"greeting":"Hello,world!","greeting":"Hello,mongoDB!"}
集合
集合是一組文檔。如果說MongoDB
中的文檔類似於關係型資料庫中的行,那麼集合就如同表。
無模式
集合是無模式的。這意味著集合裡面的文檔可以是各式各樣的,例如下面兩個文檔可以存在於同一個集合裡面:
{"greeting": "Hello,world!"}{"foo": 5}
命名
我們可以通過名字來標示集合。集合名可以是滿足下列條件的UTF-8
條件
- 集合名不能是Null 字元串""。 - 集合名不能含有\0字元(Null 字元) - 集合名不能以"system."開頭,這是為系統集合保留的首碼 - 使用者建立的集合名字不能含有保留字元$
子集合
組織集合的一種慣例是使用"."
字元分開的按命名空間劃分的子集合。
Shell中的基本操作
在shell
查看資料會用到4個基本操作:建立、讀取、更新和刪除(CRUD
)
資料庫
MongoDB
中多個文檔組成集合,同樣多個集合可以組成資料庫。一個MongoDB
執行個體可以承載多個資料庫,資料庫名可以是滿足以下條件的任意UTF-8
字串
- 不能是Null 字元串("") - 不能含有‘‘(空格)、.、$、/、\和\0(Null 字元) - 應全部小寫 - 最多64位元組
資料類型
MongoDB
支援許多資料類型的列表下面給出:
String : 這是最常用的資料類型來儲存資料。在MongoDB中的字串必須是有效UTF-8。Integer : 這種類型是用來儲存一個數值。整數可以是32位或64位,這取決於您的伺服器。Boolean : 此類型用於儲存一個布爾值 (true/ false) 。Double : 這種類型是用來儲存浮點值。Min/ Max keys : 這種類型被用來對BSON元素的最低和最高值比較。Arrays : 使用此類型的數組或列表或多個值儲存到一個鍵。Timestamp : 時間戳記。這可以方便記錄時的檔案已被修改或添加。Object : 此資料類型用於嵌入式的檔案。Null : 這種類型是用來儲存一個Null值。Symbol : 此資料類型用於字串相同,但它通常是保留給特定符號類型的語言使用。Date : 此資料類型用於儲存當前日期或時間的UNIX時間格式。可以指定自己的日期和時間,日期和年,月,日到建立對象。Object ID : 此資料類型用於儲存文檔的ID。Binary data : 此資料類型用於儲存位元據。Code : 此資料類型用於儲存到文檔中的JavaScript代碼。Regular expression : 此資料類型用於儲存Regex
MongoDB的基本命令use 命令
MongoDB use DATABASE_NAME
用於建立資料庫。該命令將建立一個新的資料庫,如果它不存在,否則將返回現有的資料庫。
dropDatabase() 方法
MongoDB db.dropDatabase()
命令是用來刪除一個現有的資料庫。
dropDatabase()
命令的基本文法如下:
db.dropDatabase()
drop() 方法
MongoDB
的 db.collection.drop()
是用來從資料庫中刪除一個集合。
insert() 方法
要插入資料到 MongoDB
集合,需要使用 MongoDB
的 insert()
或 save()
方法。
find() 方法
要從MongoDB
查詢集合資料,需要使用MongoDB
的 find()
方法。
pretty() 方法
結果顯示在一個格式化的方式,可以使用 pretty()
方法.
Limit() 方法
要限制 MongoDB
中的記錄,需要使用 limit()
方法。 limit()
方法接受一個數字型的參數,這是要顯示的文檔數。
文法:
limit()
方法的基本文法如下
>db.COLLECTION_NAME.find().limit(NUMBER)
MongoDB 資料轉儲
建立備份MongoDB
中的資料庫,應該使用mongodump
命令。
mongodump
命令的基本文法如下:
>mongodump
恢複資料
恢複備份資料使用MongoDB
的 mongorerstore
命令。此命令將恢複所有的資料從備份目錄。
文法:
mongorestore
命令的基本文法
>mongorestore
剩下的方法或命令大家都可以去網上搜尋的,這裡就不接著贅述了啊。
mac 下安裝mongodb