5.1 创建文档

创建集合后,它可以存储 JSON 文档。您可以通过将 JSON 数据结构传递给 Collection.add() 函数来存储文档。一些语言直接支持 JSON 数据,而另一些语言则具有等效的语法来表示这些数据。实现 X DevAPI 的 MySQL 连接器旨在实现对连接器特定语言的原生 JSON 方法的支持。

此外,在某些 MySQL 连接器中,可以使用通用的 DbDoc 对象。创建它们的最便捷方法是调用 Collection.newDoc()DbDoc 是一种数据类型,用于表示 JSON 文档,并且 X DevAPI 没有定义其实现方式。实现 X DevAPI 的语言可以自由地遵循面向对象的方法,使用 getter 和 setter 方法,或者使用具有公共成员的 C 结构风格。

对于严格类型化的语言,可以根据集合的文档结构定义创建类文件。MySQL Shell 可用于创建这些文件。

表 5.1 不同类型的文档对象、支持的语言及其优势

文档对象

支持的语言

优势

原生 JSON

脚本语言 (JavaScript, Python)

易于使用

JSON 等效语法

C# (匿名类型, ExpandoObject)

易于使用

DbDoc

所有语言

在语言之间统一

生成的 Doc 类

严格类型化的语言 (C#)

自然使用


以下示例显示了将文档插入集合的不同方法。

// Create a new collection 'my_collection'
var myColl = db.createCollection('my_collection');

// Insert JSON data directly
myColl.add({_id: '8901', name: 'Mats', age: 21}).execute();

// Inserting several docs at once
myColl.add([ {_id: '8902', name: 'Lotte', age: 24},
  {_id: '8903', name: 'Vera', age: 39} ]).execute();