Flora MongoDB DataSource
MongoDB connection for Flora.
This is a very early status of implementation and prone to change in the future.
Usage
Configuration
The module has to be added to a Flora config file by using the dataSources
object.
'dataSources': {
...
'mongodb': {
'constructor': require('flora-mongodb'),
'options': {
'server': {
'host': 'localhost',
'port': 27017
}
}
}
}
...
}
Alternatively, a Replica Set can be used:
'dataSources': {
...
'mongodb': {
'constructor': require('flora-mongodb'),
'options': {
'replicaSet': 'mycluster',
'servers': [
{'host': 'mongo-1', 'port': 27017},
{'host': 'mongo-2', 'port': 27017}
]
}
}
}
...
}
Other additional options:
'dataSources': {
...
'mongodb': {
'constructor': require('flora-mongodb'),
'options': {
'ssl': true,
'authSource': 'admin',
'server': {
'host': 'localhost',
'port': 27017
},
'username': 'dbuser',
'password': 'dbpassword'
}
}
}
...
}
Resources
Given you want to use the database "mydatabase" on the host configured above. To map "mycollection" to a resource, the following XML can be used:
<?xml version="1.0" encoding="utf-8"?>
<resource primaryKey="id" xmlns:flora="urn:flora:options">
<flora:dataSource type="mongodb" database="mydatabase" collection="mycollection"/>
<id type="int" storedType="string" map="user" order="true"/>
<data type="raw"/>
</resource>
Objects in the database look like this (storedType is used to convert the numerical "id" to the string representation in the database):
{
id: '123456',
data: {
someKey: 'someValue',
someOtherKey: {
foo: 'bar',
...
}
}
}
License
MIT