Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Logo

MongoDB DAO plugin for Para

Build Status Maven Central Join the chat at https://gitter.im/Erudika/para

What is this?

Para was designed as a simple and modular back-end framework for object persistence and retrieval. It enables your application to store objects directly to a data store (NoSQL) or any relational database (RDBMS) and it also automatically indexes those objects and makes them searchable.

This plugin allows Para to store data in a MongoDB database.

Documentation

Read the Docs

Getting started

The plugin is on Maven Central. Here's the Maven snippet to include in your pom.xml:

<dependency>
  <groupId>com.erudika</groupId>
  <artifactId>para-dao-mongodb</artifactId>
  <version>{see_green_version_badge_above}</version>
</dependency>

Alternatively you can download the JAR from the "Releases" tab above put it in a lib folder alongside the server WAR file para-x.y.z.war. Para will look for plugins inside lib and pick up the MongoDB plugin.

Configuration

Here are all the configuration properties for this plugin (these go inside your application.conf):

# setting the URI will override host, port, database, user, password below
# URI is left blank by default
para.mongodb.uri = ""
# para.mongodb.uri = "mongodb://user:pass@localhost:27017,localhost:37017/MyApp"

para.mongodb.host = "localhost"
para.mongodb.port = 27017
para.mongodb.database = "MyApp"
para.mongodb.user = "user"
para.mongodb.password = "pass"
para.mongodb.ssl_enabled = false
para.mongodb.ssl_allow_all = false

You have the option to set either the server URI as a string (e.g. mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]) or set the host and port combination for a single server instance. The first option allows you to specify multiple server hosts. If the URI has a non-blank value in the configuration file, it will override host, port, user and password settings. For detils about the server URI syntax, read the docs for MongoClientURI.

Finally, set the config property:

para.dao = "MongoDBDAO"

This could be a Java system property or part of a application.conf file on the classpath. This tells Para to use the MongoDB Data Access Object (DAO) implementation instead of the default.

Field name limitation

Mongo enforces a restriction on all field names and does not allow $ and . characters in field names. This plugin tries to avoid this by encoding such fields in Base64, following the pattern Base64:{fieldName}:{encodedFieldName}:

"$field.name" => "Base64:field_name:JGZpZWxkLm5hbWU="

The restricted characters are stripped and . is replaced with _.

Dependencies

Author

Luca Venturella

License

Apache 2.0

You can’t perform that action at this time.