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()

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











최신 기능과 개선 사항을 제공하는 최신 버전의 MongoDB(현재 5.0) 사용을 권장합니다. 버전을 선택할 때 기능 요구 사항, 호환성, 안정성 및 커뮤니티 지원을 고려해야 합니다. 예를 들어 최신 버전에는 트랜잭션 및 집계 파이프라인 최적화와 같은 기능이 있습니다. 버전이 애플리케이션과 호환되는지 확인하세요. 프로덕션 환경의 경우 장기 지원 버전을 선택하세요. 최신 버전에는 더욱 활발한 커뮤니티 지원이 포함되어 있습니다.

Node.js는 서버측 JavaScript 런타임인 반면, Vue.js는 대화형 사용자 인터페이스를 생성하기 위한 클라이언트측 JavaScript 프레임워크입니다. Node.js는 백엔드 서비스 API 개발, 데이터 처리 등 서버 측 개발에 사용되고, Vue.js는 단일 페이지 애플리케이션, 반응형 사용자 인터페이스 등 클라이언트 측 개발에 사용됩니다.

인터넷의 발달로 인해 사람들의 삶은 점점 더 디지털화되고 있으며, 개인화에 대한 요구는 점점 더 커지고 있습니다. 정보 폭발 시대에 사용자들은 막대한 양의 정보에 직면하고 선택의 여지가 없는 경우가 많아 실시간 추천 시스템의 중요성이 더욱 부각되고 있습니다. 이 기사에서는 MongoDB를 사용하여 실시간 추천 시스템을 구현한 경험을 공유하여 개발자에게 영감과 도움을 줄 수 있기를 바랍니다. 1. MongoDB 소개 MongoDB는 고성능, 쉬운 확장성 및 유연한 데이터 모델로 알려진 오픈 소스 NoSQL 데이터베이스입니다. 전기와 비교

MongoDB 데이터베이스의 데이터는 로컬 파일 시스템, 네트워크 파일 시스템 또는 클라우드 스토리지에 있는 지정된 데이터 디렉터리에 저장됩니다. 구체적인 위치는 다음과 같습니다. 로컬 파일 시스템: 기본 경로는 Linux/macOS입니다. /데이터/db, Windows: C:\data\db. 네트워크 파일 시스템: 경로는 파일 시스템에 따라 다릅니다. 클라우드 스토리지: 경로는 클라우드 스토리지 제공업체에 의해 결정됩니다.

MongoDB 데이터베이스는 유연성, 확장성 및 고성능으로 잘 알려져 있습니다. 그 장점은 다음과 같습니다: 데이터를 유연하고 구조화되지 않은 방식으로 저장할 수 있는 문서 데이터 모델입니다. 샤딩을 통해 여러 서버로 수평 확장이 가능합니다. 쿼리 유연성, 복잡한 쿼리 및 집계 작업을 지원합니다. 데이터 복제 및 내결함성은 데이터 중복성과 고가용성을 보장합니다. 프런트엔드 애플리케이션과의 손쉬운 통합을 위한 JSON 지원. 많은 양의 데이터를 처리하는 경우에도 빠른 응답을 위한 고성능입니다. 오픈 소스이며 사용자 정의가 가능하고 무료로 사용할 수 있습니다.

MongoDB는 대량의 정형 및 비정형 데이터를 저장하고 관리하는 데 사용되는 문서 중심의 분산 데이터베이스 시스템입니다. 핵심 개념은 문서 저장 및 배포이며 주요 기능으로는 동적 스키마, 인덱싱, 집계, 맵 축소 및 복제가 있습니다. 콘텐츠 관리 시스템, 전자상거래 플랫폼, 소셜 미디어 웹사이트, IoT 애플리케이션, 모바일 애플리케이션 개발에 널리 사용됩니다.

MongoDB 데이터베이스 파일은 MongoDB 데이터 디렉터리에 위치하며 기본적으로 /data/db이며, 여기에는 .bson(문서 데이터), ns(수집 정보), Journal(쓰기 작업 기록), wiredTiger(WiredTiger 사용 시 데이터)가 포함됩니다. 스토리지 엔진) 및 config(데이터베이스 구성 정보) 및 기타 파일입니다.

Linux/macOS: 데이터 디렉터리를 생성하고 "mongod" 서비스를 시작합니다. Windows의 경우: 데이터 디렉터리를 만들고 Service Manager에서 MongoDB 서비스를 시작합니다. Docker에서: "docker run" 명령을 실행하십시오. 다른 플랫폼: MongoDB 설명서를 참조하세요. 확인 방법: "mongo" 명령을 실행하여 연결하고 서버 버전을 확인하세요.
