Databases and Collections
On this page
Overview
In this guide, you can learn how to use MongoDB databases and collections with the MongoDB Java driver.
MongoDB organizes data into a hierarchy of the following levels:
Databases
Collections
Documents
Databases are the top level of data organization in a MongoDB instance. Databases are organized into collections which contain documents. Documents contain literal data such as strings, numbers, and dates as well as other (embedded) documents. For more information on document field types and structure, see the server documentation for documents.
Access a Database
Use the getDatabase() method of
a MongoClient
instance to access a MongoDatabase
in a MongoDB
instance.
The following example accesses a database named "testDatabase":
MongoDatabase database = mongoClient.getDatabase("testDatabase");
Access a Collection
Use the getCollection()
method of a MongoDatabase
instance to access a
MongoCollection
in a database of your connected MongoDB instance.
The following example accesses a collection named "testCollection" from
a MongoDatabase
:
MongoDatabase database = mongoClient.getDatabase("testDatabase"); MongoCollection<Document> collection = database.getCollection("testCollection");
Tip
If the provided collection name does not already exist in the database, MongoDB implicitly creates the collection when you first insert data into that collection.
Create a Collection
Use the createCollection()
method of a MongoDatabase
instance to create a collection
in a database of your connected MongoDB instance.
The following example creates a collection called "exampleCollection":
database.createCollection("exampleCollection");
You can specify collection options like maximum size and document
validation rules using the CreateCollectionOptions
class. The createCollection()
method accepts an instance of
CreateCollectionOptions
as an optional second parameter.
Document Validation
Document validation provides the ability to validate documents against a series of filters during writes to a collection. You can specify these filters using the ValidationOptions class, which accepts a series of Filters that specifies the validation rules and expressions:
ValidationOptions collOptions = new ValidationOptions().validator( Filters.or(Filters.exists("commander"), Filters.exists("first officer"))); database.createCollection("ships", new CreateCollectionOptions().validationOptions(collOptions));
For more information, see the server documentation for document validation.
Get a List of Collections
You can query for a list of collections in a database using the MongoDatabase.listCollectionNames() method:
for (String name : database.listCollectionNames()) { System.out.println(name); }
Drop a Collection
You can remove a collection from the database using the MongoCollection.drop() method:
MongoCollection<Document> collection = database.getCollection("bass"); collection.drop();
Warning
Dropping a Collection Deletes All Data in the Collection
Dropping a collection from your database also permanently deletes all documents within that collection and all indexes on that collection. Only drop collections that contain data that is no longer needed.
Specify Read Preferences, Read Concerns, and Write Concerns
Read preferences, read concerns, and write concerns control how the driver routes read operations and waits for acknowledgment for read and write operations when connected to a MongoDB replica set. Read preferences and read concerns apply to all read operations; write concerns apply to all write operations.
MongoDatabase
instances inherit their write concern, read concern,
and write preference settings from the MongoClient
used to create
them. MongoCollection
instances inherit their write concern, read concern,
and write preference settings from the MongoDatabase
used to create
them. However, you can use the following methods to obtain an instance
of a MongoDatabase
or MongoCollection
with a read preference,
read concern, or write concern that differs from the setting they would
normally inherit:
Tip
The withReadConcern()
, withReadPreference()
, and
withWriteConcern
methods create a new instance of a
MongoDatabase
or MongoCollection
with the desired preference
or concern. The MongoDatabase
or MongoCollection
upon which
the method is called retains its original preference and concern
settings.
For more information, see the server documentation on read preferences, read concerns, and write concerns.