首頁 資料庫 mysql教程 MongoDB笔记一之简介与入门【第一次编辑:排版】

MongoDB笔记一之简介与入门【第一次编辑:排版】

Jun 07, 2016 pm 05:40 PM
mongodb

煮酒品茶:大量序语和实例引用自书中,品茶对其实验后做的笔记上载至博客,任何有版权的人都可以直接下架下文章,谢谢合作。2012/8/1414:00MongoDB笔记一之简介

煮酒品茶:大量序语和实例引用自书中,品茶对其实验后做的笔记上载至博客,任何有版权的人都可以直接下架下文章,谢谢合作。

2012/8/14 14:00 MongoDB笔记一之简介与入门【第一次编辑:排版】


elain2012写的MongoDB 实战系列,真心不错!

 

MongoDB权威指南
 

第一章

MongoDB是一种强大、灵活、可扩展的数据存储方式。它扩展了关系型数据库的众多有用功能,免备案空间,如辅助索引、范围查询和排序。MongoDB的功能非常丰富,比如内置的对MapReduce式聚合的支持,以及对地理空间索引的支持。

优点:

1、丰富的数据模型

MongoDB是面向文档的数据库,将原来的“行”(row),的概念换成更加灵活的“文档”(document)模型。

MongoDB没有模式:文档的键不会事先定义也不会固定不变。

2、容易扩展

采用的面向文档的数据模型使其可以自动在多台服务器之间分割数据,还可以平衡集群的数据和负载,自动重排文档,开发者可以专注于编写应用,需要更大的容量,只需在集群中添加新机器,然后让数据库来处理剩下的事。

3、丰富的功能

索引(多种快速查询,也提供了咱一的,复合的和地理空间索引能力。)

存储JavaScript(开发人员不必使用存储过程了,可以直接在服务端存储JavaScript的函数和值)

聚合(支持MapReduce和其它聚合工具)

固定集合(集合的大小是有上限的,对某些类型的数据【如:日志】特别有用)

文件存储(支持用一种容易使用的协议存储大型文件和文件的元数据)

4、不牺牲速度

5、简便的管理

主从复制,副本集,分片等。
 

第二章  入门
 

基本概念

----------------------------------------

文档是MongoDB中数据的基本单元。(doucument)

集合可以被看做是没有模式的表(collections)

MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限。

MongoDB自带JavaScript shell,用于管理MongoDB实例和操和数据。

每一个文档都有一个特殊的键"_id",它在文档所处的集合中是咱一的。

-----------------------------------------

文档:多个键及其关联的值有序的放置在一起便是文档。(key:vlaue)

 {"cwtea" : "hello","key":"vlaue"}

注:文档中键的顺序并不重要。

 1、文档中的键/值对应是有序的

{"cwtea" : "hello","key":"vlaue"}和{"key":"vlaue",网站空间,"cwtea" : "hello"}完全不同

2、文档中的值可以是多种数据类型,整字,字符串,甚至文档。键可以使用任意UTF-8字符。

3、键不能含有\0(空字符),这个字符用来表示键的结尾。

4、.和$有特别的意义,只有在特定环境下才能使用。

5、以下划线"_"开头的键是保留的,香港服务器,虽然这个并不是严格要求的。

6、mongoDB区分类型和区分大小写

{"foo" : 3} 不同于{"foo" : "3"} 整数和字符串

{ "foo" : "3"}不同于{"Foo" : "3"} 大小写

7、mongoDB不能有重复的键

 

集合

概念:集合就是一组文档 collections


无模式

概念:不同文档可存在同一个集合中。


命名:

可以满足下列条件的任意UTF-8字符串。

1、集合名不能是空字符串""

2、集合名不能含 有\0字符(空字符),这个字符表示集合名的结尾.

3、集合名不能以"system."开发,这是为系统集合保留的前缀。

4、用户创建的集合名字不能含有保留字符$。有些驱动程序的确支持在集合名里面包含$,这是因为某些系统生成的集合中包含该字符。


子集合:

组织集合的一种惯例是使用 "." 字符分开的按命名空间划分的子集合。

GridFS是一种存储大文件的协议,使用子集合来存储文件的元数据,这样就与内容 分开了。

Web控制台通过子集合的方式将数据组织在DBTOP部分

绝大多数驱动程序都提供语法糖,为访问指定集合的子集合提供方便。

(db.blog代表blog集合,db.blog.posts代表blog.posts集合)


数据库:多个集合组成数据库。

一个MongoDB实例可承载多个数据库,它们之间可视为完全独立,每个数据库都有独立的权限控制,即便在磁盘上,不同的数据库存也放在不同的文件中。

命名:数据库名最终会变成文件系统里的文件,所以会有以下限制。

不能是空字符串("")

不得含有''(空格)、,、$、/、/和\0(空字符)

就全部是小写

最多64字节


保留的数据库名:

admin(是"root"数据库,添加一个用户到这个数据库,则具有最高权限)

local(这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合)

config(当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息)
 

命名空间:把数据库的名字放到集合名前面,得到就是集合的完全限定名db.blog.posts,命名空间的长度不得超过121,实际使用最好不超过100字节。
 

MongoDB shell

自带一个javascript shell,可以从命令行与MongoDB实例交互,可以执行管理操作,检查运行实例,变或做其他尝试。可以做javascript所做之事。

 > math.sin(math.pi /2)

Mon Aug 13 23:28:19 ReferenceError: math is not defined (shell):1

> Math.sin(Math.PI /2)

1

> new Date("2010/1/1")

ISODate("2009-12-31T16:00:00Z")

> new Date("2010/1/1");

ISODate("2009-12-31T16:00:00Z")

> "hello ,world!".replace("world", "mongodb")

hello ,mongodb!

> "hello ,world!".replace("world1", "mongodb")

hello ,world!

> "hello ,2".replace("2", "mongodb")

hello ,mongodb

> function factorial (n) {

... if (n 

... return n * factorial(n-1)

... }

> factorial(5);

120


shell的基本操作:

创建、读取、更新和删除。

创建:

 > use blog

switched to db blog

> post = {"title" : "my blog post",

... "content" : "here is my blog post.",

... "date" : new Date()}

{

"title" : "my blog post",

"content" : "here is my blog post.",

"date" : ISODate("2012-08-13T16:24:51.467Z")

}

> db.blog.insert(post)

> db.blog.find()

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
使用 Composer 解決推薦系統的困境:andres-montanez/recommendations-bundle 的實踐 使用 Composer 解決推薦系統的困境:andres-montanez/recommendations-bundle 的實踐 Apr 18, 2025 am 11:48 AM

在開發一個電商網站時,我遇到了一個棘手的問題:如何為用戶提供個性化的商品推薦。最初,我嘗試了一些簡單的推薦算法,但效果並不理想,用戶的滿意度也因此受到影響。為了提升推薦系統的精度和效率,我決定採用更專業的解決方案。最終,我通過Composer安裝了andres-montanez/recommendations-bundle,這不僅解決了我的問題,還大大提升了推薦系統的性能。可以通過一下地址學習composer:學習地址

Navicat查看MongoDB數據庫密碼的方法 Navicat查看MongoDB數據庫密碼的方法 Apr 08, 2025 pm 09:39 PM

直接通過 Navicat 查看 MongoDB 密碼是不可能的,因為它以哈希值形式存儲。取回丟失密碼的方法:1. 重置密碼;2. 檢查配置文件(可能包含哈希值);3. 檢查代碼(可能硬編碼密碼)。

CentOS上GitLab的數據庫如何選擇 CentOS上GitLab的數據庫如何選擇 Apr 14, 2025 pm 04:48 PM

CentOS系統上GitLab數據庫部署指南選擇合適的數據庫是成功部署GitLab的關鍵步驟。 GitLab兼容多種數據庫,包括MySQL、PostgreSQL和MongoDB。本文將詳細介紹如何選擇並配置這些數據庫。數據庫選擇建議MySQL:一款廣泛應用的關係型數據庫管理系統(RDBMS),性能穩定,適用於大多數GitLab部署場景。 PostgreSQL:功能強大的開源RDBMS,支持複雜查詢和高級特性,適合處理大型數據集。 MongoDB:流行的NoSQL數據庫,擅長處理海

CentOS MongoDB備份策略是什麼 CentOS MongoDB備份策略是什麼 Apr 14, 2025 pm 04:51 PM

CentOS系統下MongoDB高效備份策略詳解本文將詳細介紹在CentOS系統上實施MongoDB備份的多種策略,以確保數據安全和業務連續性。我們將涵蓋手動備份、定時備份、自動化腳本備份以及Docker容器環境下的備份方法,並提供備份文件管理的最佳實踐。手動備份:利用mongodump命令進行手動全量備份,例如:mongodump-hlocalhost:27017-u用戶名-p密碼-d數據庫名稱-o/備份目錄此命令會將指定數據庫的數據及元數據導出到指定的備份目錄。

MongoDB 與關係數據庫:全面比較 MongoDB 與關係數據庫:全面比較 Apr 08, 2025 pm 06:30 PM

MongoDB與關係型數據庫:深度對比本文將深入探討NoSQL數據庫MongoDB與傳統關係型數據庫(如MySQL和SQLServer)的差異。關係型數據庫採用行和列的表格結構組織數據,而MongoDB則使用靈活的面向文檔模型,更適應現代應用的需求。主要區別數據結構:關係型數據庫使用預定義模式的表格存儲數據,表間關係通過主鍵和外鍵建立;MongoDB使用類似JSON的BSON文檔存儲在集合中,每個文檔結構可獨立變化,實現無模式設計。架構設計:關係型數據庫需要預先定義固定的模式;MongoDB支持

mongodb怎麼設置用戶 mongodb怎麼設置用戶 Apr 12, 2025 am 08:51 AM

要設置 MongoDB 用戶,請按照以下步驟操作:1. 連接到服務器並創建管理員用戶。 2. 創建要授予用戶訪問權限的數據庫。 3. 使用 createUser 命令創建用戶並指定其角色和數據庫訪問權限。 4. 使用 getUsers 命令檢查創建的用戶。 5. 可選地設置其他權限或授予用戶對特定集合的權限。

Debian MongoDB如何進行數據加密 Debian MongoDB如何進行數據加密 Apr 12, 2025 pm 08:03 PM

在Debian系統上為MongoDB數據庫加密,需要遵循以下步驟:第一步:安裝MongoDB首先,確保您的Debian系統已安裝MongoDB。如果沒有,請參考MongoDB官方文檔進行安裝:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/第二步:生成加密密鑰文件創建一個包含加密密鑰的文件,並設置正確的權限:ddif=/dev/urandomof=/etc/mongodb-keyfilebs=512

連接mongodb的工具有哪些 連接mongodb的工具有哪些 Apr 12, 2025 am 06:51 AM

連接MongoDB的工具主要有:1. MongoDB Shell,適用於快速查看數據和執行簡單操作;2. 編程語言驅動程序(如PyMongo, MongoDB Java Driver, MongoDB Node.js Driver),適合應用開發,但需掌握其使用方法;3. GUI工具(如Robo 3T, Compass),提供圖形化界面,方便初學者和快速數據查看。選擇工具需考慮應用場景和技術棧,並註意連接字符串配置、權限管理及性能優化,如使用連接池和索引。

See all articles