Connect Loopback to various Data Sources
Go to file
ebarault cfd3cdf535 Overall review of polymorphic relations
In #1298, the spec/doc for polymorphic relations was reviewed

**hasX relation**
- `type`: **hasMany**
- `as`: redefines **this** relation's name (optional)
- `model`: **modelTo**
- `polymorphic`:
  - typeOf `polymorphic` === `String`
    - matching **belongsTo** relation name
      - `foreignKey` is generated as `polymorphic + 'Id'`,
      - `discriminator` is generated as `polymorphic + 'Type'`
  - typeOf `polymorphic` === `Object`
    - `as`: **DEPRECATED** should display a warning,
            replaced by `selector`
    - `selector`: should match **belongsTo** relation name if the
                  latter is defined with {polymorphic: true}
      - (required) if both foreignKey and discriminator
        are **NOT** provided
      - (extraneous) if both foreignKey and discriminator
        are provided
    - `foreignKey`:  A property of modelTo, representing the fk to
       modelFrom's id.
      - generated by default as `selector + 'Id'`
    - `discriminator`: A property of modelTo, representing the actual
                       modelFrom to be looked up and defined
                       dynamically
      - generated by default as `selector + 'Type'`

---

**belongsTo relation**
- `type`: **belongsTo**
- `as`: redefines **this** relation's name (optional)
- `model`: **NOT EXPECTED**: should throw an error at
               relation validation
- `polymorphic`:
  - typeOf `polymorphic` === `Boolean`
      - `foreignKey` is generated as `relationName + 'Id'`,
      - `discriminator` is generated as `relationName + 'Type'`
  - typeOf `polymorphic` === `Object`
    - `as`: **DEPRECATED**: should display a warning,
            replaced by `selector`
    - `selector`:
      - (required) if both foreignKey and discriminator
        are **NOT** provided
      - (extraneous) if both foreignKey and discriminator
        are provided
    - `foreignKey`: A property of modelTo, representing the fk to
                    modelFrom's id.
      - generated by default as `selector + 'Id'`
    - `discriminator`: A property of modelTo, representing the actual
                       modelFrom to be looked up and defined
                       dynamically
      - generated by default as `selector + 'Type'`
2017-05-12 21:33:39 +02:00
.github Replicate new issue_template from loopback 2017-03-20 14:36:59 -04:00
docs Fix for issue #774 2015-11-24 16:50:41 +05:30
examples Upgrade eslint-config, fix new violations 2017-02-01 12:45:56 +01:00
intl Update error message 2017-03-16 11:02:08 -04:00
lib Overall review of polymorphic relations 2017-05-12 21:33:39 +02:00
support Fix manually 2016-08-22 19:20:12 -04:00
test Overall review of polymorphic relations 2017-05-12 21:33:39 +02:00
.editorconfig minor formatting issues (trailing spaces and such) and .editorconfig 2015-02-03 13:08:23 +03:00
.eslintignore Add eslint as "npm run lint" and "posttest" hook 2016-04-05 15:25:34 +02:00
.eslintrc Disable `strict` for a few files 2016-08-26 09:54:31 -04:00
.gitignore Add translation files 2016-09-20 13:34:44 -04:00
.gitmodules Remove unused support/ files 2016-04-05 15:25:34 +02:00
.npmignore kvao: implement key filter 2016-08-18 09:59:56 +02:00
.travis.yml Drop support for Node v0.10 and v0.12 2016-11-15 14:21:02 +01:00
CHANGES.md 3.6.1 2017-05-02 18:55:44 -04:00
CONTRIBUTING.md Add instructions for running the tests (#1330) 2017-04-17 11:14:00 -04:00
LICENSE Relicense as MIT only 2016-04-01 15:17:10 -07:00
NOTICE Add NOTICE 2015-07-18 19:44:46 -07:00
README.md Update README.md 2017-03-20 14:33:17 -04:00
docs.json docs: add DateString definition 2017-05-02 18:51:56 -04:00
index.js Fix manually 2016-08-22 19:20:12 -04:00
package.json 3.6.1 2017-05-02 18:55:44 -04:00

README.md

loopback-datasource-juggler

An ORM/ODM that provides a common set of interfaces for interacting with databases, REST APIs, and other types of data sources. It was originally forked from JugglingDB.

Supported versions

Current Long Term Support
3.x 2.x

Learn more about our LTS plan in the LoopBack documenation.

Usage

Install Juggler:

npm install loopback-datasource-juggler

Then install a connector:

npm install loopback-connector-mongodb // in this case, the mongodb connector

Documentation

See the LoopBack documentation.

For information on data source connectors, see Connecting models to data sources.