# &adminguide;

## Overview

This module provides DB APIv1 connector for MongoDB NoSQL server.

It can be used as a replacement for other database modules such as db_mysql, db_postgres, a.s.o. Not all the specs of DB APIv1 are implemented, thus the usage of this module might be restricted to specific modules.

You can read more about MongoDB at: http://www.mongodb.org.

## Limitations

This module has implemented the equivalent operations for INSERT, UPDATE, DELETE and SELECT. The match condition (WHERE clause) works with the operators: equal, not equal, greater than, less than, equal or greater than, equal or less than. Raw query is not implemented inside this module, use ndb_mongodb for sending any kind of command to a MongoDB server.

## Remarks

Using this module as a database driver may require additional settings for various modules. For example, you have to set module parameter 'db_insert_null' to 1 for 'usrloc' module. If the module you are using with 'db_mongodb' fails, check its README for notes about using it with no-SQL databases.

## Dependencies

### &kamailio; Modules

The following modules must be loaded before this module:

- none.

### External Libraries or Applications

The following libraries or applications must be installed before running &kamailio; with this module loaded:

- mongo-c-driver - available at https://github.com/mongodb/mongo-c-driver

  Note: if you use tls module, use at least mongo-c-driver v1.3.5 and compile the library by configuring it without automatic init and cleanup (you have to run: './configure --disable-automatic-init-and-cleanup') -- this option is planned to be removed in future versions. An alternative for v1.3.5 could be the patch from: https://github.com/miconda/mongo-c-driver/commit/51d95009de39eaeca48491682a5ffec4f83cde55

## Usage

Load the module and set the DB URL for specific modules to: mongodb://username:password@host:port/database. Username, password and port are optional.

### Usage

    ...
    loadmodule "db_mongodb.so"
    ...
    #!define DBURL "mongodb://localhost/kamailio"
    modparam("acc", "db_url", DBURL)
    ...