MongoDB中的文档(Document)是什么?

MongoDB中的文档是一种以JSON-like格式存储的结构化数据。每个文档都有一个属性_id作为主键。文档更加灵活,没有固定的模式。

一个简单的用户文档示例:

{
    "_id": 1, 
    "name": "John",
    "age": 30,
    "address": {
        "street": "Main St",
        "city": "New York"
    }
} 

MongoDB文档有以下特点:

  1. 文档结构相对灵活,没有固定的模式。不同的文档可以有不同的字段。
  2. 文档中的数据都是以键-值对的形式存储的。
  3. 文档中的值可以是基本数据类型,也可以是其他文档甚至文档数组。
  4. 文档中的键是字符串,只能包含字母、数字和下划线。
  5. 文档中的键所对应的值可以是Null、布尔值、数值、字符串、日期对象、正则表达式、文档等。
  6. 文档必须有一个主键_id。如果插入文档时没有指定_id,MongoDB会自动为文档生成一个ObjectId类型的_id。
  7. 文档可以嵌套其他文档,实现一对一和一对多的关系。
  8. 同一个集合中的文档不需要有相同的结构。

示例:

insertion:

db.users.insertOne({
    "_id": 1, 
    "name": "John",
    "age": 30,
    "address": {
        "street": "Main St",
        "city": "New York"
    },
    "emails": [
        "john@example.com", 
        "john@gmail.com"
    ] 
})

query:

db.users.findOne({name: "John"}, {_id: 0, name: 1, "address.city": 1})

# Result
{
    "name": "John", 
    "address": { "city": "New York" } 
}