Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

mongodb driver

MongoDB driver for Jooby.

Exposes a MongoClient, a MongoDatabase and a Session Store

dependency

<dependency>
  <groupId>org.jooby</groupId>
  <artifactId>jooby-mongodb</artifactId>
  <version>0.12.0</version>
</dependency>

usage

application.conf:

db = "mongodb://localhost/mydb"
{
  use(new Mongodb());

  get("/", req -> {
    MongoClient client = req.require(MongoClient.class);
    // work with client
    MongoDatabase = req.require(MongoDatabase.class);
    // work with mydb
  });
}

Default URI connection property is db but of course you can use any other name:

application.conf:

mydb = "mongodb://localhost/mydb"
{
  use(new Mongodb("mydb"));

  get("/", req -> {
    MongoDatabase mydb = req.require(MongoDatabase.class);
    // work with mydb
  });
}

options

Options can be set via .conf file:

mongodb.connectionsPerHost  = 100

or programmatically:

{
  use(new Mongodb()
    .options((options, config) -> {
      options.connectionsPerHost(100);
    })
  );
}

connection URI

Default connection URI is defined by the db property. Mongodb URI looks like:

db = mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database[.collection]][?options]]

For more detailed information please check: MongoClientURI.

two or more connections

Use named when you need two or more mongodb connections:

{
  use(new Mongodb("db1").named());
  use(new Mongodb("db2").named());

  get("/", req -> {
    MongoClient client1 = req.require("db1", MongoClient.class);
    // work with db1
    MongoClient client2 = req.require("db2", MongoClient.class);
    // work with db2
  });
}

{{mongodb-session.md}}

That's all folks! Enjoy it!!

mongodb.conf

###################################################################################################

# mongodb

###################################################################################################

mongodb.connectionsPerHost = 100

mongodb.threadsAllowedToBlockForConnectionMultiplier = 5

mongodb.maxWaitTime = 120s

mongodb.connectTimeout = 10s

mongodb.socketTimeout = 0

mongodb.socketKeepAlive = false

mongodb.cursorFinalizerEnabled = true

mongodb.alwaysUseMBeans = false

mongodb.heartbeatFrequency = 5000

mongodb.minHeartbeatFrequency = 500

mongodb.heartbeatConnectTimeout = 20s

mongodb.heartbeatSocketTimeout = 20s

###################################################################################################

# session datastore

#  collection: sessions

#  timeout: 30m

###################################################################################################

mongodb.session.collection = sessions