在 MongoDB 中,多个文档(document)组成集合(collection),多个集合可以组成数据库(database)。
文档是 MongoDB 中数据的基本单元(类似关系型数据库 MySQL 中的行),由字段(field)和值(value)对组成;字段为字符串, 值可以包括其他文档、数组和文档数组。MongoDB 文档类似于 JSON 格式文档。
field:必须是字符串,中间不能有空格,不能以 $ 开头( $ 是 MongoDB 特殊符号)
_id
:作为 field ,被保留作为主键,它的值在集合中必须唯一,不可变的,可以是除数组之外的任何类型(默认自动生成)(类似关系型数据 MySQL 中的主键)
. 符号:MongoDB 使用点表示法来访问数组的元素和访问嵌入文档的字段
# 数组 "<array>.<index>" # 嵌套文档 "<embedded document>.<field>"
在 MongoDB 中,存储在集合中的每个文档都需要一个惟一的 _id 字段,它充当文档的主键。如果插入的文档省略了 _id 字段,MongoDB驱动程序会自动为 _id 字段生成一个 ObjectId 对象。
_id 字段具有以下行为和约束 :
以下是用于存储_id值的常见选项:
MongoDB 将文档存储在集合中,集合就是一组文档(类似关系型数据库 MySQL 中的表)
一个集合可以放置任意多个不同的文档(类似于 MySQL 的表可以有任何行)
{"name":"zhangsan"} {"age":23} {"gender":"male"} {"address":"street No.156"}
思考:是否有必要使用多个集合?
答案:如果把各种各样的文档不加区分地放在同一个集合里,无论对开发者还是对管理员来说都将是噩梦。另外,在一个集合中查询特定文档在速度上也很不划算,分开查询多个集合要快得多。
建议把同种类型的文档放在一个集合中,数据会更加集中
MongoDB 习惯使用 . 符号分割不同命名空间的子集合,如 blog.posts 和 blog.authors 两个集合名(类似于 Java 的包)
> show dbs admin 0.000GB config 0.000GB local 0.000GB
注:该命令不会显示创建的空数据库