对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

导出模式

可以在分析后导出模式。这对于共享模式和跨集合比较模式很有用。

如果还没有这样做,请先分析模式:

1

选择您所需的集合并单击 Schema 标签页。

2

单击 Analyze Schema(连接)。

当 Compass 分析您的模式时,它会从您的集合中随机抽取文档子集进行采样。要了解有关采样的更多信息,请参阅采样。

完成架构分析后,请按以下步骤导出架构。

1
显示“Export Schema”按钮的图像

Export Schema 按钮出现在视口的左上角。

2

在 Export JSON Schema 模态框中,选择导出格式。

您可以将模式导出为以下格式:

3

选择文件系统上的位置以保存您的模式。

标准格式模式对象包含以下字段:

属性
数据类型
说明

type

字符串或数组

此数据类型的JSON类型。有关详细信息,请参阅 类型 的官方JSONDocs。

required

字符串数组

必须出现在模式中的字段。有关详细信息,请参阅官方 JSON 文档。

properties

对象

每个字段的属性。键是属性名称,值是子模式。有关详细信息,请参阅 properties 的官方JSONDocs。

items

文档

关于数组字段中元素的元数据。元数据显示为嵌入式子模式。有关详情,请参阅官方 JSON 文档。

这并不是所有可能字段的详尽列表。有关其他字段的详细信息,请参阅官方JSON schema 规范。

MongoDB格式模式对象包含以下字段:

属性
数据类型
说明

bsonType

字符串或字符串数组

该字段的 BSON 类型。

required

字符串数组

必须出现在架构中的字段。

properties

文档

每个字段的属性。键是属性名称,值是子模式。

items

文档

有关大量字段中元素的元数据。元数据显示为嵌入式子模式。

这并不是所有可能字段的详尽列表。有关其他字段的详细信息,请参阅官方JSON schema 规范。

扩展格式模式对象除了标准模式字段外,还包含以下字段:

属性
数据类型
说明

x-bsonType

字符串或数组

该字段的 BSON 类型。

x-metadata

文档

包含字段元数据的文档。

hasDuplicates

布尔

true 如果一个值在此字段中出现多次。否则为 false。

probability

float

字段在随机文档中存在的概率。

count

整型

示例中具有此字段的文档数量。

x-sampleValues

阵列

以扩展JSON形式对值进行采样。示例值仅限于前 100 个字符。

这并不是所有可能字段的详尽列表。有关其他字段的详细信息,请参阅官方JSON schema 规范。

Compass 无法导出包含超过 1000 个不同字段的模式。如果您尝试导出包含超过 1000 个不同字段的模式,Compass 会返回错误。

以下示例使用 3 文档集合,每个文档都有一个 title字段和有关该电影的唯一信息:

[ { "_id": { "$oid": "573a1390f29313caabcd6223" }, "title": "The Poor Little Rich Girl", "plot": "Gwen's family is rich, but her parents ignore her and most of the serv...", "year": 1917, }, { "_id": { "$oid": "573a1391f29313caabcd7616" }, "title": "Salomè", "plot": "Salome, the daughter of Herodias, seduces her step-father/uncle Herod, ...", "year": 1922, "genres": [ "drama", "horror" ] }, { "_id": { "$oid": "573a1392f29313caabcd9c1b" }, "title": "Payment Deferred", "year": 1932, },]

您可以将以上示例导入 MongoDB Compass 来试验模式输出。要将示例集合导入 MongoDB Compass:

1

复制上面的 JSON 文档。

2

在 MongoDB Compass 中,选择一个集合或创建一个新集合以将复制的文档导入其中。随即显示 Documents(文档)标签页。

3
4
5

在对话框的 JSON 视图中粘贴复制的文档,然后单击 Insert。

上面的示例输出以下模式:

{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "_id", "title", "year" ], "properties": { "_id": { "$ref": "#/$defs/ObjectId" }, "genres": { "type": "array", "items": { "type": "string" } }, "plot": { "type": "string" }, "title": { "type": "string" }, "year": { "type": "integer" } }, "$defs": { "ObjectId": { "type": "object", "properties": { "$oid": { "type": "string", "pattern": "^[0-9a-fA-F]{24}$" } }, "required": [ "$oid" ], "additionalProperties": false } }}