02-MongoDB基础知识

02-MongoDB基础知识


文档

文档是MongoDB中的核心概念:文档就是键值对的一个有序集。

文档区分大小写,所以下方两个文档是不同的:

{"foo":3}
{"Foo":3}

MongoDB的文档不能有重复的键,以下文档是非法的:

{"greeting" : "Hello,World", "greeting" : "Hello,MongoDB"} 

MongoDB文档中的键值对是有序的,以下两个文档是不同的:

{"x" : 1, "y" : 2}
{"y" : 2, "x" : 1}

通常,字段数据并不重要,无需让数据库模式依赖特定的字段数据(MongoDB会对字段重新排序)


集合

集合就是一组文档,如果将MongoDB中的文档比喻为关系型数据库中的一行,那么一个集合就相当于一张表。

集合是动态模式的。这意味着一个集合里面的文档可以是各式各样的,例如两个文档可以存储在同一个集合里面:

{"greeting": "Hello,World"}
{"foo" : 5}

上面的文档不光值的类型不同(一个是字符串,一个是整数),它们的键也完全不同。因为集合里面可以放置任何文档,随之而来的一个问题是:还有必要使用多个集合吗?

  1. 对开发者、管理者友好:如果把各种文档不加区分放在同一个集合里,开发者就要确保每次查询只返回特定类型的文档,要么让直行查询的应用程序来处理所有不同类型的文档。
  2. 在一个集合内查询特定文档的速度不高,分开查询多个集合要快的多,比如一个集合里面一个名为”type”的字段用户知名文档是xml,java,还是js文件,从一个集合中查询这个三种类型的文档速度很慢,把三种不同的类型拆分为三个不同的集合,每次都要查询相应的集合,速度会快很多。
  3. 把同种类型的文档放在一个集合里,数据会更加集中
  4. 创建索引时,需要使用文档的附加结构(特别是创建唯一索引时)。索引时按照集合来定的。在一个集合中只放入一种类型的文档,可以更有效地对集合进行索引。

命名

  1. 集合名不能是空字符串
  2. 集合名不能包含\0(空字符),这个字符表示集合名的结束
  3. 集合名不能以”system.”开头,这些是为系统保留的前缀
  4. 用户创建的集合不能在集合名中包含保留字符‘$’,因为系统生成的集合中有包含的
  5. 子集合使用”.”分隔不同的命名空间的子集合

数据库

在MongoDB中,多个文档组成集合,多个集合组成数据库。

一个MongoDB实例可以承载多个数据库,每个数据库拥有0个或者多个集合。每个数据库都有独立的权限,即使在磁盘上,不同的数据库也存放在不同的那文件中,按照经验,我们将有关一个应用程序的所有数据读存储在同一个数据库中。

  • 不能为空字符串(” “)
  • 不能以$开头,不能含有/、\、.、”“、*、<、>、:、|、?、
  • 不能包含.(点号)和空字符串
  • 数据库名区分大小写(建议数据库名全部使用小写)
  • 数据库名最长为64个字节
  • 不要与系统保留的数据库名相同,这写数据库包括:admin,local,config等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值