文档菜单
文档首页
/ / /
Java 同步驱动程序
/

数据库与集合

本页内容

  • 概述
  • 访问数据库
  • 访问集合
  • 创建集合
  • 文档验证
  • 获取集合列表
  • 删除集合
  • 指定读取偏好、读取关注点和写入关注点

在本指南中,您可以了解如何使用MongoDB Java驱动程序与MongoDB数据库和集合进行交互。

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

  • 数据库

  • 集合

  • 文档

数据库是MongoDB实例中数据组织的顶级级别。数据库组织成集合,其中包含文档。文档包含诸如字符串、数字和日期等字面数据,以及其他(嵌入式)文档。有关文档字段类型和结构的更多信息,请参阅文档.

使用getDatabase()方法访问MongoDB实例中的MongoDatabase。MongoClient实例以访问MongoDB实例中的MongoDatabase

以下示例访问名为"testDatabase"的数据库

MongoDatabase database = mongoClient.getDatabase("testDatabase");

使用 getCollection() 方法来访问连接的 MongoDB 实例中的数据库的 MongoCollection

以下示例从 MongoDatabase 访问名为 "testCollection" 的集合

MongoDatabase database = mongoClient.getDatabase("testDatabase");
MongoCollection<Document> collection = database.getCollection("testCollection");

提示

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

使用 createCollection() 方法在连接的 MongoDB 实例的数据库中创建一个集合。

以下示例创建了一个名为 "exampleCollection" 的集合

database.createCollection("exampleCollection");

您可以使用 CreateCollectionOptions 类指定集合选项,如最大大小和文档验证规则。`createCollection()` 方法接受一个 `CreateCollectionOptions` 实例作为可选的第二个参数。

文档验证 允许在向集合写入时对文档进行一系列过滤器验证。您可以使用 ValidationOptions 类来指定这些过滤器,该类接受一系列 Filters,这些过滤器指定了验证规则和表达式

ValidationOptions collOptions = new ValidationOptions().validator(
Filters.or(Filters.exists("commander"), Filters.exists("first officer")));
database.createCollection("ships",
new CreateCollectionOptions().validationOptions(collOptions));

有关更多信息,请参阅文档验证的服务器文档。

您可以使用MongoDatabase.listCollectionNames()方法在数据库中查询集合列表

for (String name : database.listCollectionNames()) {
System.out.println(name);
}

您可以使用 MongoCollection.drop() 方法从数据库中删除集合

MongoCollection<Document> collection = database.getCollection("bass");
collection.drop();

警告

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

从数据库中删除集合也将永久删除该集合中的所有文档以及该集合上的所有索引。仅删除不再需要的包含数据的集合。

读取偏好读取关注写入关注控制驱动程序如何路由读取操作,以及在与MongoDB副本集连接时等待读取和写入操作的确认。读取偏好和读取关注适用于所有读取操作;写入关注适用于所有写入操作。

MongoDatabase 实例从创建它们的 MongoClient 继承其写入关注、读取关注和写入偏好设置。 MongoCollection 实例从创建它们的 MongoDatabase 继承其写入关注、读取关注和写入偏好设置。但是,您可以使用以下方法获取一个具有不同读取偏好、读取关注或写入关注的 MongoDatabaseMongoCollection 实例:

提示

《withReadConcern()》方法、`withReadPreference()`方法和`withWriteConcern`方法可以创建一个新的`MongoDatabase`或`MongoCollection`实例,该实例具有所需的偏好或关注点。被调用方法的`MongoDatabase`或`MongoCollection`保留其原始的偏好和关注设置。

有关更多信息,请参阅服务器文档中的读取偏好读取关注写入关注

返回

稳定API