1. 程式人生 > >mongodb權威指南-基礎

mongodb權威指南-基礎

簡介

mongodb是一個面向文件的資料庫,並非關係型資料庫。“文件模型”。
擴充套件性:mongodb的設計採用橫向擴充套件。
功能:索引、聚合、特殊的集合型別、檔案儲存。
效能:對文件進行動態填充,預分配資料檔案利用額外空間換取穩定的效能。儘可能多用記憶體做快取。

mongodb基礎知識

mongodb 文件資料庫,儲存的是文件(Bson->json的二進位制化).

特點:內部執行引擎為JS直譯器, 把文件儲存成bson結構,在查詢時,轉換為JS物件,並可以通過熟悉的js語法來操作.

js語句===>通過mongodb的js引擎V8===>轉為bson結構進行儲存。通過gridfs來儲存

取出資料==》query json資料==>查出bson結構===>轉為json格式。

mongo和傳統型資料庫相比,最大的不同:
傳統型資料庫: 結構化資料, 定好了表結構後,每一行的內容,必是符合表結構的,就是說–列的個數,型別都一樣.
mongo文件型資料庫: 表下的每篇文件,都可以有自己獨特的結構(json物件都可以有自己獨特的屬性和值)

文件

文件是mongodb的基本單元。文件表示(key:value)類似js的物件
key:不能含有\0空字元。.和$具有特殊意義。區分型別、區分大小寫。

集合

集合:一組文件,集合類似於資料庫中的一張表。
集合是動態模式,可以各式各樣。
{"greeting":"hello world"}{"foo":5}

注意:同種型別的文件放在一個集合裡,資料會更加集中。

在一個集合裡查詢特定型別的文件在速度上也不是很划算,分開查詢多個集合要快得多。

命名
集合名不能是空字串,
不能包含空字元,
不能以system開頭,這個系統為集合保留的字首。
不能包含保留$符號。
子集合
組織集合使用.分隔不同名稱空間的子集合。
blog.posts和blog.authors。blog集合裡面有posts和authors子集
資料庫
多個文件組成集合,多個集合組成資料庫。一個mongodb例項可以承載多個數據庫。
資料庫最終變成檔案系統裡的檔案,而資料庫名就是相應的檔名。
示例
思路: 如果有電影, 影評, 影評的回覆, 回覆的打分
在傳統型資料庫中, 至少要4張表, 關聯度非常複雜.
在文件資料庫中,通過1篇文件,即可完成.

體現出文件型資料庫的反正規化化.

{
 fiim:’天龍八部’
    comment:[
        {content:’王家衛的電影風格’,
        reply:[‘支援’,’好’]
        }
    ]
}
mongodb安裝
bin目錄下有相關的執行檔案:
bsondump:    匯出bson結構;
mongo:         客戶端(mysql.exe)
mongod:      服務端(mysqld.exe)
mongodump:   整體資料庫匯出(二進位制,相當於mysql_dump)
mongoexport:  匯出易識別的json文件或者csv文件;
mongofiles:
mongoimport:資料庫匯入
mongooplog:
mongoperf:
mongorestore:   資料庫整體匯入
mongos: 路由器(分片時用的)叢集使用
mongostat:觀察伺服器狀態
mongotop:運維使用
php安裝mongodb擴充套件

2、

啟動mongodb

指定你的資料檔案、日誌檔案埠

–dbpath:資料儲存目錄;

–logpath:日誌儲存目錄;

–port:埠;

–fork:後臺程序執行

#mkdir /opt/database
#touch /opt/mongolog
# ./mongod --dbpath /opt/database --logpath /opt/mongolog --fork --port 27017
執行mongodb shell
mongo shell是一個功能完備的js直譯器,可執行任何js程式;
是一個強大的客戶端;
[root@localhost bin]# ./mongo
MongoDB shell version v3.4.2

檢視mongodb的佔用磁碟

[root@localhost opt]# du -h
0   ./databse
301M    ./database/journal
28K ./database/diagnostic.data
301M    ./database
396M    .
基本操作

檢視資料show dbs;show databases檢視資料庫

檢視資料庫
> show dbs;或者show databases;
admin  0.000GB 類似root資料庫,將使用者新增到admin資料庫自動擁有所有資料庫許可權
local  0.000GB不可複製,本地集合類似sechemal

選擇資料庫use

選擇資料庫
> use local
switched to db local

檢視資料庫中的所有表

> show tables;或者show collection
startup_log

檢視幫助

> db.help();
help();
db.foo.help();

建立資料庫,在mongodb中資料庫是隱式建立的,use 一個不存在的庫

> use shop
switched to db shop

建立資料表,不用定義表的結構

> use shop
switched to db shop
> db.createCollection('user');
{ "ok" : 1 }
> show dbs;
admin  0.000GB
local  0.000GB
shop   0.000GB

插入資料表,並查詢出來

> post = {"title":"my blog post","content":"here blog post","date":new Date()}
{
    "title" : "my blog post",
    "content" : "here blog post",
    "date" : ISODate("2017-02-17T15:52:24.971Z")
}
> db.blog.insert(post);
WriteResult({ "nInserted" : 1 })
> db.blog.find();
{ "_id" : ObjectId("58a71c4ebd132c30ed48c717"), "title" : "my blog post", "content" : "here blog post", "date" : ISODate("2017-02-17T15:52:24.971Z") }
> 

_id:表示一個唯一的hash值
find和findOne方法可以用於查詢集合裡面的文件;findOne()查詢一條

更新資料
update接收兩個引數:第一個限定條件,第二個是新的文件。需要新增一個新的鍵

> post.comments = [];
[ ]
> db.blog.update({title:"my blog post"}, post);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.blog.find();
{ "_id" : ObjectId("58a71c4ebd132c30ed48c717"), "title" : "my blog post", "content" : "here blog post", "date" : ISODate("2017-02-17T15:52:24.971Z"), "comments" : [ ] }

刪除資料

> db.blog.remove({"title":"my blog post"});
WriteResult({ "nRemoved" : 1 })
> db.blog.find();
remove方法將文件從資料庫中永久刪除,如果沒有任何引數會刪除所有的資料。
資料型別
null 用於表示空值或者不存在的欄位
布林型:true/false
數值:shell預設使用64位浮點型數值,整型NunberInt(),NumberLong();
字串:
日期:{"x":new Date()}
正則表示式:{"x":/foobar/i}
陣列:{"x":["a","b","cc"]}
內嵌文件:{"x":{"foo":"bar"}}
物件id:是一個12位元組的ID,文件的唯一標識。{"x":ObjectId()}
程式碼:查詢和文件中可以包含任意js程式碼;{"x":function(){/*.....*/}}

相關推薦

mongodb權威指南-基礎

簡介 mongodb是一個面向文件的資料庫,並非關係型資料庫。“文件模型”。 擴充套件性:mongodb的設計採用橫向擴充套件。 功能:索引、聚合、特殊的集合型別、檔案儲存。 效能:對文件進行動態填充,預分配資料檔案利用額外空間換取穩定的效能。儘可能多用記憶體

mongodb權威指南mongodb基礎知識學習記錄

pre lec fin 基礎知識 pda log editor 批量 l數據庫 mongo show dbs查看所有的數據庫 使用use可以切換數據庫,如果沒有數據庫則創建一個新的 use local切換倒local數據庫 增加數據 db.test.insert({name

MongoDB權威指南--筆記

這一 article dfs $natural 變慢 tags 復用 lec score mongodb並不具備一些在關系型數據庫中很普遍的功能,如連接和復雜的多行事務。 集合-->文檔-->id id在文檔所屬的集合中是唯一的。 db.help()查看數據庫級

MongoDB權威指南》學習整理----MongoDB簡介及基本概念

簡介 MongoDB是一種強大、靈活、追求效能、易擴充套件的資料儲存方式。是面向文件的資料庫,不是關係型資料庫,是NoSQL(not only SQL)的一種。所謂的面向文件,就是將原來關係型資料庫中的“行”的概念換成了更加靈活的"文件",以文件為儲存單位。文件的值可以是陣

MongoDB大資料處理權威指南 第2版 pdf 免費下載

本書根據MongoDB的版本做了相應更新,其中包含MongoDBn*的所有特性,包括版本2.2中引入的聚集框架和版本2.4中引入的雜湊索引。MongoDB是最流行的“大資料”NoSQL資料… 下載地址

MongoDB大資料處理權威指南(第2版)》之MongoDB入門

    想象一下這樣的世界:資料庫使用是如此的簡單,以至於你忘記了正在使用它。再想象一下這樣的世界:不需要任何複雜配置或設定,資料庫仍然能夠快速執行,並且具有良好的擴充套件性。想一下,如何可以只關注gg於手上的任務,完成它,並可以按時下班。這聽起來有點神奇,但是Mon

MongoDB 線上實踐指南-基礎篇之支撐百億級訪問(三)

MongoDB 線上實踐指南-基礎篇之支撐百億級訪問 索引 MongoDB 的組合索引使用策略與 MySQL 一致,遵循“最左原則” 索引名稱長度不要超過128字元 應儘量綜合評估查詢場景

HTTP結構講解——《HTTP權威指南》系列

expire 本地 發布者 步驟 ont 資源 都是 comm pid HTTP結構 第二部分的5章主要介紹了HTTP服務器,代理,緩存,網關和機器人應用程序,這些都是Web系統架構的構造模塊。 Web服務器 第五章 Web服務器會對HTTP請求進行處理並提供響應。術語"w

css權威指南 讀書筆記

text ron :focus 表單 順序 系統 web letter 知識 網上看見推薦的書總是喜歡買回家,但是大多數時候都不會立即就看,都是在書櫥裏蒙上了一層灰塵。從畢業到現在,由於公司業務原因,寫js多余css,所以就想系統地看看css,並且做一些練習,於是就開始看《

【轉載】 Spark性能優化指南——基礎

否則 內存占用 是否 進行 優先 邏輯 我們 流式 字節數組 前言 開發調優 調優概述 原則一:避免創建重復的RDD 原則二:盡可能復用同一個RDD 原則三:對多次使用的RDD進行持久化 原則四:盡量避免使用shuffle類算子 原則五:使用map-side預聚

電子書 Android編程權威指南 第2版.pdf

免費下載 開發經驗 掌握 個人 美國 旅行 心得體會 編程指南 用途 Big Nerd Ranch是美國一家專業的移動開發技術培訓機構。本書主要以其Android訓練營教學課程為基礎,融合了幾位作者多年的心得體會,是一本完全面向實戰的Android編程指南。全書共34章,詳

《HTTP權威指南》--閱讀筆記(二)

cep ask 資源 phrase 格式 tel 位置 自動擴展 port URL的三部分: 1,方案 scheme 2,服務器位置 3,資源路徑 URL語法: <scheme>://<user>:<password>@&

JavaScript權威指南(第6版)(中文版)筆記

text image png 指南 mage 分享 http javascrip p s ?JavaScript權威指南(第6版)(中文版)筆記 ? ? ?JavaScript權威指南(第6版)(中文版)筆記

Hadoop權威指南學習筆記三

支持 第三方 handle line src factory 模式 多個 重要 HDFS簡單介紹 聲明:本文是本人基於Hadoop權威指南學習的一些個人理解和筆記,僅供學習參考。有什麽不到之處還望指出,一起學習一起進步。 轉載請註明:http://blog.cs

《Netty權威指南》(一)簡單的時間服務器P69

通過 adc 不一致 nios pie bound trap 記錄 esp 由於該書是基於Netty5編寫的樣例代碼,而Netty5已經被官方廢棄。目前基於推薦版的4.1.12.Final在學習過程中,可能會出現個別接口不一致的情況。所以記錄可在4.1.12下編譯通過的代碼

【HTTP權威指南】第1 章 HTTP 概述

1.4 狀態 1.8 網關 資源 ip 地址 gen 歷史 客戶端 1.1 HTTP——因特網的多媒體信使 ...................................................................................

【HTTP權威指南】第三章-HTTP報文

響應 主體 方法 首部 部分 功能 第三章 http 支持 HTTP是因特網的信使,報文就是信使運送的包裹。 這一章包含: 報文如何流動 報文的三個組成部分(起始行,首部,實體的主體部分) 請求報文和響應報文的區別 請求報文支持的各種功能(方法) 響應報文返回的狀態碼

【HTTP權威指南】第二章-URL與資源

理想 還需要 端口號 劃分 說明 字符 span http權威指南 網關 【統一資源定位符URL】通過位置來標示資源,其表達的格式如下:https://item.jd.com/523961.html 第一部分(https)是方案,告知客戶端要【怎樣訪問】,這裏使用的是htt

轉載8天學通MongoDB——第一天 基礎入門

綠色 lin items odi back 微博 comm replace middle 關於MongoDB的好處,優點之類的這裏就不說了,唯一要講的一點就是mongodb中有三元素:數據庫,集合,文檔,其中“集合” 就是對應關系數據庫中的“表”,“文檔”對應

Elasticsearch: 權威指南(官方教程)

span spa art agg current .html mode ide gui 《Elasticsearch 權威指南》中文版 序言 前言 基礎入門 深入搜索 處理人類語言 聚合 地理位置 數據建模 管理、監控和部署