数据库与集合
概述
在本指南中,您可以了解如何使用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();
警告
删除集合将删除该集合中的所有数据
从数据库中删除集合也将永久删除该集合中的所有文档以及该集合上的所有索引。仅删除不再需要的包含数据的集合。
指定读取偏好、读取关注和写入关注
读取偏好、读取关注和
MongoDatabase
实例从创建它们的 MongoClient
继承其写入关注、读取关注和写入偏好设置。 MongoCollection
实例从创建它们的 MongoDatabase
继承其写入关注、读取关注和写入偏好设置。但是,您可以使用以下方法获取一个具有不同读取偏好、读取关注或写入关注的 MongoDatabase
或 MongoCollection
实例:
提示
《withReadConcern()》方法、`withReadPreference()`方法和`withWriteConcern`方法可以创建一个新的`MongoDatabase`或`MongoCollection`实例,该实例具有所需的偏好或关注点。被调用方法的`MongoDatabase`或`MongoCollection`保留其原始的偏好和关注设置。