mongodb-基本簡介


這是我摘抄對mongodb的介紹:

  對於大數據量、高並發、弱事務的互聯網應用,MongoDB則是一個如瑞士軍刀般的利劍。--說明了mongodb出現的環境
  例如:為了產品中的某個實體的查詢操作,我們需要把一個本屬於該實體的數據拆分至另一個表中,以便進行連接查詢。於是無論是創建,刪除還是更新,我們要涉及的操作便增加了許多。更別說互聯網項目時刻都在發展和變動,改變一個存儲單元結果是常事,至今關系型數據庫的在線模式更新依舊不是件簡單的事情。--mongodb出現的必要性
  選擇MongoDB,是因為它的集合支持松散的模式,易於靈活調整;支持復雜的屬性,並可為之建立索引,作為查詢條件。
  MongoDB的系統管理員上輩子是折翼的天使,使他們犧牲自己,方便了整個團隊。--mongodb存在的問題

豐富的數據模型
MongoDB是面向文檔的數據庫,不是關系型數據庫。放棄關系模型的主要原因就是為了獲得更加方便的擴展性,當然還有其他的好處。
基本的思路就是講原來的行(row)的概念轉換成為了更加靈活的文檔模型。
MongoDB沒有模型,文檔的鍵是不會事先定義也不會固定不變。
文檔是MongoDB的核心概念,多個鍵及其關聯的值有序的放置在一起便是文檔。
集合就是一組文檔。如果說MongoDB中的文檔類似於關系型數據庫中的行,那么集合就如同表。
子集合是用“.”字符分開的按命名空間划分的子集合。

MongoDB中多個文檔組成集合,同樣多個集合可以組成數據庫。一個MongoDB實例可以承載多個數據庫,它們之間可視為完全獨立的。每一個數據庫都有獨立的權限控制,即便是在磁盤上面。要記住一點:數據庫名最終會變成文件系統里的文件,這也就是有如此多限制的原因。
特殊的幾個數據庫的名是保留的
admin local config
命名空間:將數據庫的名字放在集合名前面,得到就是集合的完全限定名。但是字節的長度不能超過121字節。

Mongo啟動
mongod在沒有參數的情況下會使用默認數據目錄/data/db,並使用27017端口,如果數據目錄不存在或者不可寫,服務器會啟動失敗。
mongod還會啟動一個非常基本的HTTP服務器,監聽數字比主端口號高1000的端口,也就是28017端口。這意味着你可以通過瀏覽器訪問http://localhost:28017來獲取數據庫的管理信息。

MongoDB shell 可以能運行任意javascript程序,而且shell的真正威力還在於它是一個獨立的MongoDB客戶端。開啟的時候,shell會連到MongoDB服務器的test數據庫,並將這個數據庫連接賦值給全局變量db。這個變量是通過shell訪問MongoDB的主要入口點。

shell的基本操作
CRUD
1、創建
insert函數添加一個文檔到集合里面。
2、讀取
find會返回集合里面所有的文檔,若只是想查看一個文檔,可以用findOne
find 和findOne 可以接收查詢文檔形式的限定條件。這將通過查詢限制匹配的文檔,使用find時,shell自動顯示最多20個匹配的文檔,但可以獲取更多的文檔。
3、更新
update接受(至少)兩個參數:第一個是要更新文檔的限定條件,第二個是新的文檔。
4、刪除
remove()用來從數據庫中永安性刪除文檔。在不使用參數進行調用的情況下,它會刪除一個集合內的所有文檔,它也可以接受一個文檔以指定限定條件。

蹩腳的集合名
使用db.集合名的方式來訪問集合一般不會有問題,但是如果集合名恰好是數據庫類的一個屬性就有問題了。

基本類型
null  用於表示空值或者不存在的字段
布爾值  兩個值‘true’和‘false’
32位整數   shell這個類型不可以用,因為javascript僅支持64位浮點數,所以32位整數會被自動轉換
64位整數
64位浮點數
字符串
符號   shell不支持這種類型,shell將數據庫里的符號類型轉換成字符串
對象id 對象id是文檔的12字節的唯一ID
日期  日期類型儲存的是從標准紀元開始的毫秒值,不存儲時區。
正則表達式
代碼
二進制
最大值
最小值
未定義 文檔中也可以使用未定義的類型(javascript中的null和underfined是不同的類型)
數組
內嵌文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM