- MongoDB的一个实例可以拥有多个独立的数据库(database),每个数据库都拥有自己的集合(collection)。
- 集合可以看做拥有动态模式(dynamic schema)的表。
- 文档(document)是MongoDB中数据的基本单元,类似于关系型数据库中的行。
- 每个文档中都有唯一键"_id"
集合
命名
集合名不能是空字符串("")
集合名不能包含\0字符(空字符)
集合名不能以”system“开头(系统集合保留前缀)
集合名中不包含字符”$“
子集合
使用”.“分隔不同命名空间的集合。例如:
machine.category
machine.brand
机械模块包含两个集合分别是category和brand,组织结构更清晰。å
文档
文档就是键值对的一个有序集。
在JavaScript里面,文档表示为对象:
{"name":"测试机械1"}
这个文档只有一个键"name",其对应的值为"测试机械1"。平时我们面临的文档数据比这个复杂的多,会包括多个键/值对:
{
"name":"测试机械1",
"plate_number":"苏AJK123",
"categroy":{
"type":"machine",
"name":"挖掘机"
},
"owner": {
"name":"联系人1",
"phone":18066041112
}
}
文档中的值可以是多种不同的数据类型或者是一个完整的内嵌文档。
文档中的键是字符串,值是多类型。
- MongoDB既区分类型,又区分大小写
- 键不能含有\0字符(空字符)
- 文档中不能有重复的键
- 文档中键/值对是有序的
- .和$具有特殊意义,只在特定的情况下使用
以下根据类型来看两个不同文档:
{"page":1}
{"page":"1"}
以下根据大小写来看两个不同文档:
{"page":1}
{"Page":1}
以下根据键/值顺序来看是不同文档:
{"name":"联系人1","phone":18066041112}
{"phone":18066041112,"name":"联系人1"}
下面的文档是非法的:
{"name":"测试机械1","name":"测试机械2"}
网友评论