MongoDB DAO plugin for Para
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitignore
.travis.yml
Dockerfile
LICENSE
README.md
deploy.sh
pom.xml

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):

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

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