new MongoDBAdapter(opts)
MongoDBAdapter class.
Parameters:
Name | Type | Argument | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
opts |
Object |
<optional> |
Configuration opts. Properties
|
- Source:
Example
// Use Container instead of DataStore on the server import {Container} from 'js-data' import MongoDBAdapter from 'js-data-mongodb' // Create a store to hold your Mappers const store = new Container({ mapperDefaults: { // MongoDB uses "_id" as the primary key idAttribute: '_id' } }) // Create an instance of MongoDBAdapter with default settings const adapter = new MongoDBAdapter() // Mappers in "store" will use the MongoDB adapter by default store.registerAdapter('mongodb', adapter, { default: true }) // Create a Mapper that maps to a "user" collection store.defineMapper('user')
Extends
Members
-
client :Object
-
A Promise that resolves to a reference to the MongoDB client being used by this adapter.
Type:
- Object
- Source:
-
debug :boolean
-
Whether to log debugging information.
Type:
- boolean
- Inherited From:
- Default Value:
-
- false
- Source:
-
findOneOpts :Object
-
Default options to pass to collection#findOne.
Type:
- Object
- Default Value:
-
- {}
- Source:
-
findOpts :Object
-
Default options to pass to collection#find.
Type:
- Object
- Default Value:
-
- {}
- Source:
-
insertManyOpts :Object
-
Default options to pass to collection#insertMany.
Type:
- Object
- Default Value:
-
- {}
- Source:
-
insertOpts :Object
-
Default options to pass to collection#insert.
Type:
- Object
- Default Value:
-
- {}
- Source:
-
raw :boolean
-
Whether to return a more detailed response object.
Type:
- boolean
- Inherited From:
- Default Value:
-
- false
- Source:
-
removeOpts :Object
-
Default options to pass to collection#update.
Type:
- Object
- Default Value:
-
- {}
- Source:
-
translateId :boolean
-
Convert ObjectIDs to strings when pulling records out of the database.
Type:
- boolean
- Default Value:
-
- true
- Source:
-
updateOpts :Object
-
Default options to pass to collection#update.
Type:
- Object
- Default Value:
-
- {}
- Source:
-
uri :string
-
MongoDB URI.
Type:
- string
- Default Value:
-
- mongodb://localhost:27017
- Source:
Methods
-
<static> extend(instanceProps, classProps)
-
Alternative to ES6 class syntax for extending
MongoDBAdapter
.Parameters:
Name Type Argument Description instanceProps
Object <optional>
Properties that will be added to the prototype of the MongoDBAdapter.
classProps
Object <optional>
Properties that will be added as static properties to the MongoDBAdapter itself.
- Source:
Returns:
MongoDBAdapter of
MongoDBAdapter
.- Type
- Object
-
_translateId()
-
Translate ObjectIDs to strings.
- Source:
Returns:
- Type
- *
-
afterCreate(mapper, props, opts, response)
-
Lifecycle method method called by create.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes create to wait for the Promise to resolve before continuing.
If
opts.raw
istrue
thenresponse
will be a detailed response object, otherwiseresponse
will be the created record.response
may be modified. You can also re-assignresponse
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by create.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to create.props
Object The
props
argument passed to create.opts
Object The
opts
argument passed to create.response
Object | Response Created record or Response, depending on the value of
opts.raw
.- Inherited From:
- Overrides:
- Source:
Properties:
Name Type Description opts.op
string afterCreate
-
afterDestroy(mapper, id, opts, response)
-
Lifecycle method method called by destroy.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes destroy to wait for the Promise to resolve before continuing.
If
opts.raw
istrue
thenresponse
will be a detailed response object, otherwiseresponse
will beundefined
.response
may be modified. You can also re-assignresponse
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by destroy.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to destroy.id
string | number The
id
argument passed to destroy.opts
Object The
opts
argument passed to destroy.response
undefined | Response undefined
or Response, depending on the value ofopts.raw
.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string afterDestroy
-
afterDestroyAll(mapper, query, opts, response)
-
Lifecycle method method called by destroyAll.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes destroyAll to wait for the Promise to resolve before continuing.
If
opts.raw
istrue
thenresponse
will be a detailed response object, otherwiseresponse
will beundefined
.response
may be modified. You can also re-assignresponse
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by destroyAll.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to destroyAll.query
Object The
query
argument passed to destroyAll.opts
Object The
opts
argument passed to destroyAll.response
undefined | Response undefined
or Response, depending on the value ofopts.raw
.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string afterDestroyAll
-
afterFind(mapper, id, opts, response)
-
Lifecycle method method called by find.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes find to wait for the Promise to resolve before continuing.
If
opts.raw
istrue
thenresponse
will be a detailed response object, otherwiseresponse
will be the found record, if any.response
may be modified. You can also re-assignresponse
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by find.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to find.id
string | number The
id
argument passed to find.opts
Object The
opts
argument passed to find.response
Object | Response The found record or Response, depending on the value of
opts.raw
.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string afterFind
-
afterFindAll(mapper, query, opts, response)
-
Lifecycle method method called by findAll.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes findAll to wait for the Promise to resolve before continuing.
If
opts.raw
istrue
thenresponse
will be a detailed response object, otherwiseresponse
will be the found records, if any.response
may be modified. You can also re-assignresponse
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by findAll.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to findAll.query
Object The
query
argument passed to findAll.opts
Object The
opts
argument passed to findAll.response
Array.<Object> | Response The found records or Response, depending on the value of
opts.raw
.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string afterFindAll
-
afterUpdate(mapper, id, props, opts, response)
-
Lifecycle method method called by update.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes update to wait for the Promise to resolve before continuing.
If
opts.raw
istrue
thenresponse
will be a detailed response object, otherwiseresponse
will be the updated record.response
may be modified. You can also re-assignresponse
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by update.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to update.id
string | number The
id
argument passed to update.props
Object The
props
argument passed to update.opts
Object The
opts
argument passed to update.response
Object | Response The updated record or Response, depending on the value of
opts.raw
.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string afterUpdate
-
afterUpdateAll(mapper, props, query, opts, response)
-
Lifecycle method method called by updateAll.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes updateAll to wait for the Promise to resolve before continuing.
If
opts.raw
istrue
thenresponse
will be a detailed response object, otherwiseresponse
will be the updated records, if any.response
may be modified. You can also re-assignresponse
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by updateAll.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to updateAll.props
Object The
props
argument passed to updateAll.query
Object The
query
argument passed to updateAll.opts
Object The
opts
argument passed to updateAll.response
Array.<Object> | Response The updated records or Response, depending on the value of
opts.raw
.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string afterUpdateAll
-
afterUpdateMany(mapper, records, opts, response)
-
Lifecycle method method called by updateMany.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes updateMany to wait for the Promise to resolve before continuing.
If
opts.raw
istrue
thenresponse
will be a detailed response object, otherwiseresponse
will be the updated records, if any.response
may be modified. You can also re-assignresponse
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by updateMany.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to updateMany.records
Array.<Object> The
records
argument passed to updateMany.opts
Object The
opts
argument passed to updateMany.response
Array.<Object> | Response The updated records or Response, depending on the value of
opts.raw
.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string afterUpdateMany
-
beforeCreate(mapper, props, opts)
-
Lifecycle method method called by create.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes create to wait for the Promise to resolve before continuing.
props
may be modified. You can also re-assignprops
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by create.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to create.props
Object The
props
argument passed to create.opts
Object The
opts
argument passed to create.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string beforeCreate
-
beforeCreateMany(mapper, props, opts)
-
Lifecycle method method called by createMany.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes createMany to wait for the Promise to resolve before continuing.
props
may be modified. You can also re-assignprops
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by createMany.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to createMany.props
Array.<Object> The
props
argument passed to createMany.opts
Object The
opts
argument passed to createMany.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string beforeCreateMany
-
beforeDestroy(mapper, id, opts)
-
Lifecycle method method called by destroy.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes destroy to wait for the Promise to resolve before continuing.
A thrown error or rejected Promise will bubble up and reject the Promise returned by destroy.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to destroy.id
string | number The
id
argument passed to destroy.opts
Object The
opts
argument passed to destroy.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string beforeDestroy
-
beforeDestroyAll(mapper, query, opts)
-
Lifecycle method method called by destroyAll.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes destroyAll to wait for the Promise to resolve before continuing.
A thrown error or rejected Promise will bubble up and reject the Promise returned by destroyAll.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to destroyAll.query
Object The
query
argument passed to destroyAll.opts
Object The
opts
argument passed to destroyAll.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string beforeDestroyAll
-
beforeFind(mapper, id, opts)
-
Lifecycle method method called by find.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes find to wait for the Promise to resolve before continuing.
A thrown error or rejected Promise will bubble up and reject the Promise returned by find.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to find.id
string | number The
id
argument passed to find.opts
Object The
opts
argument passed to find.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string beforeFind
-
beforeFindAll(mapper, query, opts)
-
Lifecycle method method called by findAll.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes findAll to wait for the Promise to resolve before continuing.
A thrown error or rejected Promise will bubble up and reject the Promise returned by findAll.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to findAll.query
Object The
query
argument passed to findAll.opts
Object The
opts
argument passed to findAll.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string beforeFindAll
-
beforeUpdate(mapper, id, props, opts)
-
Lifecycle method method called by update.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes update to wait for the Promise to resolve before continuing.
props
may be modified. You can also re-assignprops
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by update.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to update.id
string | number The
id
argument passed to update.props
Object The
props
argument passed to update.opts
Object The
opts
argument passed to update.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string beforeUpdate
-
beforeUpdateAll(mapper, props, query, opts)
-
Lifecycle method method called by updateAll.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes updateAll to wait for the Promise to resolve before continuing.
props
may be modified. You can also re-assignprops
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by updateAll.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to updateAll.props
Object The
props
argument passed to updateAll.query
Object The
query
argument passed to updateAll.opts
Object The
opts
argument passed to updateAll.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string beforeUpdateAll
-
beforeUpdateMany(mapper, props, opts)
-
Lifecycle method method called by updateMany.
Override this method to add custom behavior for this lifecycle hook.
Returning a Promise causes updateMany to wait for the Promise to resolve before continuing.
props
may be modified. You can also re-assignprops
to another value by returning a different value or a Promise that resolves to a different value.A thrown error or rejected Promise will bubble up and reject the Promise returned by updateMany.
Parameters:
Name Type Description mapper
Object The
mapper
argument passed to updateMany.props
Array.<Object> The
props
argument passed to updateMany.opts
Object The
opts
argument passed to updateMany.- Inherited From:
- Source:
Properties:
Name Type Description opts.op
string beforeUpdateMany
-
create(mapper, props, opts)
-
Create a new record.
Parameters:
Name Type Argument Description mapper
Object The mapper.
props
Object The record to be created.
opts
Object <optional>
Configuration options.
Properties
Name Type Argument Default Description insertOpts
Object <optional>
Options to pass to collection#insert.
raw
boolean <optional>
false Whether to return a more detailed response object.
- Overrides:
- Source:
Returns:
- Type
- Promise
-
createMany(mapper, props, opts)
-
Create multiple records in a single batch.
Parameters:
Name Type Argument Description mapper
Object The mapper.
props
Object The records to be created.
opts
Object <optional>
Configuration options.
Properties
Name Type Argument Default Description insertManyOpts
Object <optional>
Options to pass to collection#insertMany.
raw
boolean <optional>
false Whether to return a more detailed response object.
- Overrides:
- Source:
Returns:
- Type
- Promise
-
dbg()
-
Shortcut for
#log('debug'[, arg1[, arg2[, argn]]])
.- Inherited From:
- Source:
-
destroy(mapper, id, opts)
-
Destroy the record with the given primary key.
Parameters:
Name Type Argument Description mapper
Object The mapper.
id
string | number Primary key of the record to destroy.
opts
Object <optional>
Configuration options.
Properties
Name Type Argument Default Description raw
boolean <optional>
false Whether to return a more detailed response object.
removeOpts
Object <optional>
Options to pass to collection#remove.
- Overrides:
- Source:
Returns:
- Type
- Promise
-
destroyAll(mapper, query, opts)
-
Destroy the records that match the selection query.
Parameters:
Name Type Argument Description mapper
Object the mapper.
query
Object <optional>
Selection query.
opts
Object <optional>
Configuration options.
Properties
Name Type Argument Default Description raw
boolean <optional>
false Whether to return a more detailed response object.
removeOpts
Object <optional>
Options to pass to collection#remove.
- Overrides:
- Source:
Returns:
- Type
- Promise
-
find(mapper, id, opts)
-
Retrieve the record with the given primary key.
Parameters:
Name Type Argument Description mapper
Object The mapper.
id
string | number Primary key of the record to retrieve.
opts
Object <optional>
Configuration options.
Properties
Name Type Argument Default Description findOneOpts
Object <optional>
Options to pass to collection#findOne.
raw
boolean <optional>
false Whether to return a more detailed response object.
with
Array.<string> <optional>
[] Relations to eager load.
- Overrides:
- Source:
Returns:
- Type
- Promise
-
findAll(mapper, query, opts)
-
Retrieve the records that match the selection query.
Parameters:
Name Type Argument Description mapper
Object The mapper.
query
Object Selection query.
opts
Object <optional>
Configuration options.
Properties
Name Type Argument Default Description findOpts
Object <optional>
Options to pass to collection#find.
raw
boolean <optional>
false Whether to return a more detailed response object.
with
Array.<string> <optional>
[] Relations to eager load.
- Overrides:
- Source:
Returns:
- Type
- Promise
-
getClient()
-
Return a Promise that resolves to a reference to the MongoDB client being used by this adapter.
Useful when you need to do anything custom with the MongoDB client library.
- Source:
Returns:
MongoDB client.
- Type
- Object
-
getOpt(opt, opts)
-
Resolve the value of the specified option based on the given options and this adapter's settings. Override with care.
Parameters:
Name Type Argument Description opt
string The name of the option.
opts
Object <optional>
Configuration options.
- Inherited From:
- Source:
Returns:
The value of the specified option.
- Type
- *
-
getQuery()
-
Map filtering params in a selection query to MongoDB a filtering object.
Handles the following:
- where
- and bunch of filtering operators
- Source:
Returns:
- Type
- Object
- where
-
getQueryOptions()
-
Map non-filtering params in a selection query to MongoDB query options.
Handles the following:
- limit
- skip/offset
- orderBy/sort
- Source:
Returns:
- Type
- Object
-
loadBelongsTo()
-
Load a belongsTo relationship.
Override with care.
- Inherited From:
- Source:
Returns:
- Type
- Promise
-
loadHasMany()
-
Load a hasMany relationship.
Override with care.
- Inherited From:
- Source:
Returns:
- Type
- Promise
-
loadHasOne()
-
Load a hasOne relationship.
Override with care.
- Inherited From:
- Source:
Returns:
- Type
- Promise
-
log(level, values)
-
Logging utility method. Override this method if you want to send log messages to something other than the console.
Parameters:
Name Type Argument Description level
string Log level.
values
* <repeatable>
Values to log.
- Inherited From:
- Source:
-
makeBelongsToForeignKey()
-
Return the foreignKey from the given record for the provided relationship.
- Overrides:
- Source:
Returns:
- Type
- *
-
makeHasManyForeignKey()
-
Return the foreignKey from the given record for the provided relationship.
There may be reasons why you may want to override this method, like when the id of the parent doesn't exactly match up to the key on the child.
Override with care.
- Inherited From:
- Source:
Returns:
- Type
- *
-
makeHasManyForeignKeys()
-
Return the foreignKeys from the given record for the provided relationship.
Override with care.
- Inherited From:
- Source:
Returns:
- Type
- *
-
respond(response, opts)
-
Parameters:
Name Type Description response
Object Response object.
opts
Object Configuration options. return {Object} If
opts.raw == true
then returnresponse
, else returnresponse.data
.- Inherited From:
- Source:
-
toObjectID()
-
Turn an _id into an ObjectID if it isn't already an ObjectID.
- Source:
Returns:
- Type
- *
-
update(mapper, id, props, opts)
-
Apply the given update to the record with the specified primary key.
Parameters:
Name Type Argument Description mapper
Object The mapper.
id
string | number The primary key of the record to be updated.
props
Object The update to apply to the record.
opts
Object <optional>
Configuration options.
Properties
Name Type Argument Default Description raw
boolean <optional>
false Whether to return a more detailed response object.
updateOpts
Object <optional>
Options to pass to collection#update.
- Overrides:
- Source:
Returns:
- Type
- Promise
-
updateAll(mapper, props, query, opts)
-
Apply the given update to all records that match the selection query.
Parameters:
Name Type Argument Description mapper
Object The mapper.
props
Object The update to apply to the selected records.
query
Object <optional>
Selection query.
opts
Object <optional>
Configuration options.
Properties
Name Type Argument Default Description raw
boolean <optional>
false Whether to return a more detailed response object.
updateOpts
Object <optional>
Options to pass to collection#update.
- Overrides:
- Source:
Returns:
- Type
- Promise
-
updateMany()
-
Not supported.
- Overrides:
- Source: