Client API: How to Setup a Default Database

database property allows you to setup a default database for a DocumentStore. Implication of setting up a default database is that each time you access operations or create a session without explicitly passing database on which they should operate on then default database is assumed.

Example I

// without specifying `database`
// we will need to specify the database in each action
// if no database is passed explicitly we will get an exception

try (DocumentStore store = new DocumentStore()) {
    store.setUrls(new String[]{ "http://localhost:8080" });
    store.initialize();

    try (IDocumentSession session = store.openSession("Northwind")) {
        // ...
    }

    CompactSettings compactSettings = new CompactSettings();
    compactSettings.setDatabaseName("Northwind");
    store.maintenance().server().send(new CompactDatabaseOperation(compactSettings));
}

Example II

// when `database` is set to `Northwind`
// created `operations` or opened `sessions`
// will work on `Northwind` database by default
// if no database is passed explicitly
try (DocumentStore store = new DocumentStore(new String[]{ "http://localhost:8080" }, "Northwind")) {
    store.initialize();

    try (IDocumentSession northwindSession = store.openSession()) {
        // ...
    }

    store.maintenance().send(new DeleteIndexOperation("NorthwindIndex"));


    try (IDocumentSession adventureWorksSession = store.openSession("AdventureWorks")) {
        // ...
    }

    store.maintenance().forDatabase("AdventureWorks").send(new DeleteIndexOperation("AdventureWorksIndex"));
}

Remarks

Note

By default value of database property in DocumentStore is null which means that in any actions that need a database name we will have to specify the database.