Docs 菜单
Docs 主页
/ / /
Java (Sync) 驱动程序
/

数据库和集合

在此页面上

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

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

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

  • Databases

  • 集合

  • 文档 (Document)

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

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

以下示例将访问名为“testDatabase”的数据库:

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

使用 getCollection() MongoDatabase实例的方法,用于访问已连接MongoCollection MongoDB 实例的数据库中的 。

以下示例将从 MongoDatabase 访问名为“testCollection”的集合:

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

提示

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

使用 createCollection() MongoDatabase实例的方法,用于在已连接MongoDB实例的数据库中创建集合。

以下示例将创建名为“exampleCollection”的集合:

database.createCollection("exampleCollection");

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

文档验证提供了在写入集合时根据一系列过滤器验证文档的功能。您可以使用 ValidationOptions 类指定这些过滤器,该类接受一系列指定验证规则和表达式的过滤器

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 方法创建具有所需偏好或关注的 MongoDatabaseMongoCollection 的新实例。调用该方法的 MongoDatabaseMongoCollection 将保留其原有的偏好和关注设置。

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

后退

Stable API