首页 数据库 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脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 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)

nodejs和vuejs区别 nodejs和vuejs区别 Apr 21, 2024 am 04:17 AM

Node.js 是一种服务器端 JavaScript 运行时,而 Vue.js 是一个客户端 JavaScript 框架,用于创建交互式用户界面。Node.js 用于服务器端开发,如后端服务 API 开发和数据处理,而 Vue.js 用于客户端开发,如单页面应用程序和响应式用户界面。

navicat过期怎么办 navicat过期怎么办 Apr 23, 2024 pm 12:12 PM

解决 Navicat 过期问题的方法包括:续订许可证;卸载并重新安装;禁用自动更新;使用 Navicat Premium Essentials 免费版;联系 Navicat 客户支持。

前端学nodejs难吗 前端学nodejs难吗 Apr 21, 2024 am 04:57 AM

对于前端开发人员而言,学习 Node.js 的难度取决于其 JavaScript 基础、服务器端编程经验、命令行熟悉度和学习风格。学习过程包括入门级和进阶级的模块,重点关注基础概念、服务器端架构、数据库集成和异步编程。总体而言,对于具备扎实 JavaScript 基础并愿意投入时间和精力的开发人员,学习 Node.js 并不困难,但对于缺乏相关经验的人来说,可能需要克服一定的挑战。

navicat怎么连mongodb navicat怎么连mongodb Apr 24, 2024 am 11:27 AM

要使用 Navicat 连接 MongoDB,您需要:安装 Navicat创建 MongoDB 连接:a. 输入连接名称、主机地址和端口b. 输入认证信息(如果需要)添加 SSL 证书(如果需要)验证连接保存连接

nodejs常用模块有哪些 nodejs常用模块有哪些 Apr 21, 2024 am 04:34 AM

Node.js 中最常用的模块包括:用于文件操作的文件系统模块用于网络通信的网络模块用于处理数据流的流模块用于与数据库交互的数据库模块其他实用模块,如加密、查询字符串解析和 HTTP 框架

net4.0有什么用 net4.0有什么用 May 10, 2024 am 01:09 AM

.NET 4.0 用于创建各种应用程序,它为应用程序开发人员提供了丰富的功能,包括:面向对象编程、灵活性、强大的架构、云计算集成、性能优化、广泛的库、安全性、可扩展性、数据访问和移动开发支持。

nodejs用什么数据库好 nodejs用什么数据库好 Apr 21, 2024 am 05:06 AM

对于 Node.js 应用,选择数据库取决于应用要求。NoSQL 数据库 MongoDB 提供灵活性,Redis 提供高并发性,Cassandra 处理时间序列数据,Elasticsearch 专用于搜索。SQL 数据库 MySQL 性能出色,PostgreSQL 功能丰富,SQLite 轻量级,Oracle Database 全面。选择时,需考虑数据类型、查询、性能、事务性、可用性、许可和成本。

nodejs怎么连接数据库 nodejs怎么连接数据库 Apr 21, 2024 am 05:07 AM

在 Node.js 中连接数据库的步骤:安装 MySQL、MongoDB 或 PostgreSQL 包。创建数据库连接对象。打开数据库连接,并处理连接错误。

See all articles