什么是mongodb
MongoDB是一個基于分布式文件存儲的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB是一個介于關系數據庫和 非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bjson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
mongodb的幾大優勢
MongoDB是面向文檔的數據庫,不是關系型數據庫。
1、MongoDB有豐富的數據模型,基本的思路就是將原來“行”的概念換成更加靈活的“文檔”模型。一條記錄可以表示非常復雜的層次關系。
2、非常容易擴展。面對數據量的不斷上漲,通常有兩種方案,一種是購買更好的硬件,別一種是分散數據,進行分布式的擴展,前者有著非常大的缺點,因為硬件通常是有物理極限的,當達到極限以后,處理能力就不可能再進行擴展了。所以建議的方式是使用集群進行擴展。MongoDB所采用的面向文檔的數據模型使其可以自動在多臺服務器之間分割數據。它還可以平衡集群的數據和負載,自動重排文檔。
3、豐富的功能。包括索引、存儲JavaScript、聚合、固定集合、文件存儲等。
4、卓越的性能。
5、方便的管理,除了啟動數據庫服務器之外,幾乎沒有什么必要的管理操作。管理集群只需要知道有新增加的節點,就會自動集成和配置新節點。
mongodb的幾個基本概念
文檔
文檔是MongoDB中數據的基本單元,非常類似于關系數據庫管理系統中的行。
文檔是MongoDB的核心概念。多個鍵及其關聯的值有序地放置在一起便是文檔。
MongoDB以類JSON的格式來表示文檔,例如:
{"greeting":"hello mongodb!"}
以鍵值形式存儲,值可以是不同的類型,比如字符串,整型等。
集合
集合就是一組文檔。類似于關系型數據庫中的表。
我們可以使用任意的UTF-8字符串來命名集合。
為了使組織結構更好些,我們可以使用子集合。組織集合的一種慣例是使用“.”字符分開的按命名空間劃分的子集合。
數據庫
MongoDB中多個文檔組成集合,同樣多個集合可以組成數據庫。一個MongoDB實例可以承載多個數據庫,它們之間可視為完全獨立的。
數據庫名可以是任意UTF-8字符串。
除了一些規則外,有一些數據庫名是保留的,不能作為數據庫名,包括“admin”、“local”、"config"。
32位win7下用虛機安裝64位ubuntu
如果是32位的ubuntu安裝起來很順利沒什么問題,但是到了安裝64位ubuntu的時候出問題了。
報錯如下:
This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel appropriate for your CPU.
解決辦法:
先下載一個cpu-z,我下載的地址是
http://www.xiazaiba.com/html/160.html
打開并且查看一下
如果顯示支持64位那么就應該是bios里邊沒有進行設置的原因了,重啟電腦進入bios
找到 CPU ==> Intel(R) Virtualization Technology ==> 設置為 Enabled
注意:這之后要冷啟動才能生效。
然后進行系統重新安裝,一切正常。
啟動mongodb
首先是下載和安裝,下載就到mongodb的官方網站上,在baidu或者google輸一下,基本上第一個就是,我的下載地址是:
http://www.mongodb.org/downloads
因為使用的是64位的ubuntu,所以下載了64-bit的mongodb,下載后解壓縮。
到解壓后的bin目錄里執行./mongod
提示路徑不存在,需要創建路徑,執行mkdir -p /data/db,并授予權限。
然后重新執行./mongod,正常啟動。
在瀏覽器中輸入
可以獲得數據庫的管理信息。
shell中的CRUD
當上面的啟動完成之后可以就可以使用shell了,運行./mongo,出現如下界面
輸入db可以看到,默認連到test庫上
mongodb自帶了一個JavaScript Shell,可以通過命令行與mongodb實例進行交互。
可以直接利用javascript進行交互,也可以利用javascript中的函數和標準庫。
增加
假設插入一條博客的信息有標題、文章內容和日期。
也就是說插入了一個post文件到blog集合中。
查看一下是否插入成功
可以看到查詢的記錄,其中_id是自動加入的記錄。
讀取
可以使用findOne()查看其中的一個文檔。
上面說到的find()是查詢所有記錄的意思。find和findOne都可以接受文檔形式的查詢條件。
更新
更新操作其實就是update函數。
新增加備注
執行更新,需要加上條件
查看結果
刪除
刪除就是指remove函數。
刪除完文檔post之后,查看blog集合已經沒有相應的post文檔了。
操作的明細信息
關于mongodb的明細操作在[中文版] MongoDB權威指南 中都已經有了非常詳細的說明,有需要的,可以到地址:
http://code.google.com/p/mycloub/downloads/list
進行下載并且深入研究。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
