- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第⼀章 - 基础知识
我们通过学习 MongoDB 的基本⼯作原理,开始我们的 MongoDB 之旅。当然,这是
学习 MongoDB 的核⼼,它也能帮助我们回 诸如,MongoDB 适⽤于哪些场景这些更
⾼层次的问题。
开始之前,这有六个简单的概念我们需要了解⼀下。
1. MongoDB 中的 database 有着和你熟知的数据库⼀样的概念 (对 Oracle 来说
就是 schema) 。⼀个 MongoDB 实例中,可以有零个或多个数据库,每个都作为
⼀个⾼等容器,⽤于存储数据。
2. 数据库中可以有零个或多个 collections (集合) 。集合和传统意义上
的 table 基本⼀致,你可以简单的把两者看成是⼀样的东西。
3. 集合是由零个或多个 documents (⽂档)组成。同样,⼀个⽂档可以看成是
⼀ row。
4 . ⽂档是由零个或多个 fields (字段)组成。, 没错,它就是 columns。
5. Indexes (索引)在 MongoDB 中扮演着和它们在 RDBMS 中⼀样的⾓⾊。
6. Cursors (游标)和上⾯的五个概念都不⼀样,但是它⾮常重要,并且经常被忽
视,因此我觉得它们值得单独讨论⼀下。其中最重要的你要理解的⼀点是,游
标是,当你问 MongoDB 拿数据的时候,它会给你返回⼀个结果集的指针⽽不
是真正的数据,这个指针我们叫它游标,我们可以拿游标做我们想做的任何事
情,⽐如说计数或者跨⾏之类的,⽽⽆需把真正的数据拖下来,在真正的数据
上操作。
综上,MongoDB 是由包含 collections 的 databases 组成的。
⽽ collection 是由 documents组成。每个 document是由 fields 组
成。 Collections 可以被 indexed,以便提⾼查找和排序的性能。最后,当我们
从 MongoDB 获取数据的时候,我们通过 cursor 来操作,读操作会被延迟到需要实
际数据的时候才会执⾏。
那为什么我们需要新的术语(collection s. table , document s. row and field s. column) ?
为了让看起来更复杂点?事实上,虽然这些概念和关系型数据中的概念类似,但是还
是有差异的。核⼼差异在于,关系型数据库是在 table 上定义的columns,⽽⾯向
⽂档数据库是在 document 上定义的 fields。也就是说,在 collection 中的每
个 document 都可以有它⾃⼰独⽴的 fields。因此,对于 collection 来说是个
简化了的 table ,但是⼀个 document 却⽐⼀ row 有更多的信息。
虽然这些概念很重要,但是如果现在搞不明⽩也不要紧。多插⼏条数据就明⽩上⾯说
的到底是什么意思了。反正,要点就是,集合不对存储内容严格限制 (所谓的⽆模式
(schema-less)) 。字段由每个独⽴的⽂档进⾏跟踪处理。这样做的优点和缺点将在下⾯
章节⼀⼀讨论。
好了我们开始吧。如果你还没有运⾏ MongoDB ,那么快去运⾏ mongod 服务和开启
mongo shell 。shell ⽤的是 Ja aScript 。你可以试试⼀些全局命令,⽐如 help 或
者 exit。如果要操作当前数据库,⽤ db ,⽐如 db.help() 或者db.stats()。如
果要操作指定集合,⼤多数情况下我们会操作集合⽽不是数据库,
⽤ db.COLLECTION_N ME ,⽐如db.unicorns.help() 或
者 db.unicorns.count()。
我们继续,输⼊ db.help(),就能拿到⼀个对 db 能执⾏的所有的命令的列表。
顺便说⼀句:因为这是⼀个 Ja aScript shell ,如果你输⼊的命令漏了 (),你会看到这个
命令的源码,⽽不是执⾏这个命令。我提⼀下,是为了避免你执⾏漏了括号的命令,
拿到⼀个以 function (...){ 开头的返回的时候,觉得神奇不可思议。⽐如说,
如果你输⼊ db.help (不带括号), 你会看到 help ⽅法的内部实现。
⾸先我们⽤全局的 use 来切换数据库,继续,输⼊ use learn。这个数
您可能关注的文档
最近下载
- U8V11.1培训课件9U8V11.1新版功能介绍生产制造幻灯片.ppt VIP
- GB_T 9711-2023 石油天然气工业 管线输送系统用钢管.pdf VIP
- 1kv母线调试报告.pdf VIP
- 过滤实验-课件.ppt VIP
- GB_T 14264-2024 半导体材料术语.pdf VIP
- 消防系统的联动常见故障.ppt VIP
- (完整版)供应商合规管理制度 .pdf VIP
- JBT 12786-2016 升降工作平台 术语与分类.pdf VIP
- 2024东南亚电商市场报告.pptx VIP
- 第七单元 跨学科主题学习——项目开展,探究丝绸之路 学习任务单 苏科版初中信息科技七年级下册.docx VIP
文档评论(0)