Package Exports
- loopback-connector-cloudant
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (loopback-connector-cloudant) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
loopback-connector-cloudant
Cloudant DB connector for the StrongLoop Loopback framework.
Please see the full documentation at docs.strongloop.com
Key Features
- Uses Cloudant Query (Lucene) to support ad-hoc searching
- Loopback Query support for: fields, limit, order, skip and where filters
- Query and filtering is performed on the database for optimal efficiency
- Use different DB instances per Model definition
- Support basic Model discovery
LoopBack Connectors
LoopBack provides connectors for popular relational and NoSQL databases. These connectors implement CRUD operations as a common set of methods across different databases and allow quick and easy API creation for new or existing datasources.
IBM Cloudant
IBM Cloudant® is a NoSQL database platform built for the cloud. You can use Cloudant as a fully-managed DBaaS running on public cloud platforms like Bluemix, SoftLayer or via an on-premise version called Cloudant Local.
Install
To install the connector cd into the top level directory of your loopback application, enter:
$ npm install loopback-connector-cloudant --save
The --save options automatically as the dependency to the package.json file
Configuring the Cloudant datasource
Use the Data source generator to add the Cloudant data source to your application. The entry in the applications /server/datasources.json will look something like this:
"mydb": {
"name": "mydb",
"connector": "cloudant",
"username": "XXXX-bluemix",
"password": "YYYYYYYYYYYY",
"database": "test"
}
Edit the datasources.json to add other supported properties as required:
Property | Type | Description |
---|---|---|
database | String | Database name |
username | String | Cloudant username, use either 'url' or username/password |
password | String | Cloudant password |
url | String | Cloudant URL containing both username and password |
modelIndex | String | Specify the model name to document mapping, defaults to 'loopback__model__name' |
Model Specific Configuration
Per Model configuration is also supported for database selection and to specify different Loopback Model to document mappings:
common/models/
{
"name": "User",
"base": "PersistedModel",
"idInjection": true,
...
"settings": {
"cloudant": {
"modelIndex": "myPropertyName",
"database": "test2"
}
},
...
Model specific configuration settings:
Property | Type | Description |
---|---|---|
database | String | Database name |
modelIndex | String | Specify the model name to document mapping, defaults to 'loopback__model__name' |
Example Usage
var DataSource = require ('loopback-datasource-juggler').DataSource,
Cloudant = require ('loopback-connector-cloudant');
var config = {
username: 'XXXXX-bluemix',
password: 'YYYYYYYYYYYYY',
database: 'test'
};
var db = new DataSource (Cloudant, config);
User = db.define ('User', {
name: { type: String },
email: { type: String }
});
User.create ({
name: "Tony",
email: "tony@t.com"
}, function (err, user) {
console.log (user);
});
User.find ({ where: { name: "Tony" }}, function (err, users) {
console.log (users);
});
User.destroyAll (function () {
console.log ('test complete');
})
Feature Backlog
- Index only Model properties marked with index=true
- Configurable "view based" or JSON indexes. More Info>>