Class: MongoDBAdapter

MongoDBAdapter


new MongoDBAdapter(opts)

MongoDBAdapter class.

Parameters:
Name Type Argument Description
opts Object <optional>

Configuration opts.

Properties
Name Type Argument Default Description
debug boolean <optional>
false

Whether to log debugging information.

findOpts Object <optional>

Options to pass to collection#find.

findOneOpts Object <optional>

Options to pass to collection#findOne.

insertOpts Object <optional>

Options to pass to collection#insert.

insertManyOpts Object <optional>

Options to pass to collection#insertMany.

raw boolean <optional>
false

Whether to return detailed result objects instead of just record data.

removeOpts Object <optional>

Options to pass to collection#remove.

translateId boolean <optional>
true

Convert ObjectIDs to strings when pulling records out of the database.

updateOpts Object <optional>

Options to pass to collection#update.

uri string <optional>
"mongodb://localhost:27017"

MongoDB URI.

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

Members


client :Object

A Promise that resolves to a reference to the MongoDB client being used by this adapter.

Type:
  • Object
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:

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
*

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.

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.

Source:
Returns:
Type
Promise

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.

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.

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.

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.

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

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

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

makeBelongsToForeignKey()

Return the foreignKey from the given record for the provided relationship.

Source:
Returns:
Type
*

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.

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.

Source:
Returns:
Type
Promise

updateMany()

Not supported.

Source: