Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ / /
Kotlin Sync 驱动程序

数据库和集合

在本指南中,您可以学习;了解如何通过Kotlin Sync驾驶员使用MongoDB数据库和集合。

MongoDB 将数据组织成以下级别的层次结构:

  • 数据库: MongoDB 部署中用于存储集合的顶级数据结构。

  • 集合: MongoDB文档组。 它们类似于关系数据库中的表。

  • 文档:存储字面数据(例如string 、数字、日期和其他嵌入式文档)的单位。 有关文档字段类型和结构的更多信息,请参阅MongoDB Server手册中的文档指南。

要访问权限数据库,请将数据库名称传递给 getDatabase() 方法。

以下示例将访问名为test_database的数据库:

val db = client.getDatabase("test_database")

要访问权限集合,请将数据库名称传递给 getCollection() 方法。

以下示例访问名为 test_collection 的集合:

val collection = db.getCollection("test_collection")

提示

如果提供的集合名称在数据库中尚不存在,则当您首次向其中插入数据时,MongoDB 会隐式创建该集合。

要在MongoDB 数据库中显式创建集合,请将集合名称传递给 createCollection() 方法。

以下示例创建了一个名为example_collection的collection:

db.createCollection("example_collection")

您可以通过在 CreateCollectionOptions实例中设置来指定集合选项,例如最大大小和文档验证规则。然后,将 CreateCollectionOptions 传递给 createCollection() 方法。有关可选参数的完整列表,请参阅 CreateCollectionOptions API文档。

您可以通过调用listCollections()方法来查询数据库中的集合列表。 该方法返回一个游标,其中包含数据库中的所有集合及其关联的元数据。

以下示例调用listCollections()方法并对返回的迭代器进行迭代,以打印访问集合创建集合示例中的集合:

val results = db.listCollections()
val jsonSettings = JsonWriterSettings.builder().indent(true).build()
results.forEach { result ->
println(result.toJson(jsonSettings))
}
{
"name": "example_collection",
"type": "collection",
"options": {},
"info": {
"readOnly": false,
...
},
"idIndex": { ... }
}
{
"name": "test_collection",
"type": "collection",
"options": {},
"info": {
"readOnly": false,
...
},
"idIndex": { ... }
}

要从数据库中删除集合,请对集合调用 drop() 方法。

以下示例删除test_collection集合:

db.getCollection("test_collection").drop()

警告

删除集合会删除该集合中的所有数据

从数据库中删除集合会永久删除该集合中的所有文档和所有索引。

仅当不再需要集合中的数据时才删除集合。

您可以通过指定读取偏好(read preference)、读关注(read concern)或写关注(write concern)来控制写入操作在副本集上的运行方式。

默认下,数据库会从 MongoClient实例继承写入设置。集合从调用 getCollection() 方法的 MongoClientMongoDatabase实例继承这些设置。您可以通过调用以下方法更改这些设置:

如需学习;了解有关设置读取偏好(read preference)、读关注(read concern)和写关注(write concern)的更多信息,请参阅 Configure 增删改查操作指南。

要进一步了解本指南所讨论的任何方法或类型,请参阅以下 API 文档:

后退

连接故障排除

在此页面上