PHP Class lithium\data\source\MongoDb

Rather than operating on records and record sets, queries against MongoDB will return nested sets of Document objects. A Document's fields can contain both simple and complex data types (i.e. arrays) including other Document objects. After installing MongoDB, you can connect to it as follows: {{{//app/config/bootstrap/connections.php: Connections::add('default', array('type' => 'MongoDb', 'database' => 'myDb'));}}} By default, it will attempt to connect to a Mongo instance running on localhost on port 27017. See __construct() for details on the accepted configuration settings.
See also: lithium\data\entity\Document
See also: lithium\data\Connections::add()
See also: lithium\data\source\MongoDb::__construct()
Inheritance: extends lithium\data\Source
Afficher le fichier Open project: unionofrad/lithium Class Usage Examples

Méthodes publiques

Свойство Type Description
$connection object The MongoDB object instance.
$server object The Mongo class instance.

Protected Properties

Свойство Type Description
$_autoConfig array List of configuration keys which will be automatically assigned to their corresponding protected class properties.
$_boolean array List of comparison operators to use when performing boolean logic in a query.
$_classes array Classes used by this class.
$_operators Map of typical SQL-like operators to their MongoDB equivalents.
$_schema Closure A closure or anonymous function which receives an instance of this class, a collection name and associated meta information, and returns an array defining the schema for an associated model, where the keys are field names, and the values are arrays defining the type information for each field. At a minimum, type arrays must contain a 'type' key. For more information on schema definitions, and an example schema callback implementation, see the $_schema property of the Model class.

Méthodes publiques

Méthode Description
__call ( string $method, array $params ) : mixed A method dispatcher that allows direct calls to native methods in PHP's Mongo object. Read more here: http://php.net/manual/class.mongo.php
__construct ( array $config = [] ) : void Constructor.
__destruct ( ) : void Destructor. Ensures that the server connection is closed and resources are freed when the adapter instance is destroyed.
calculation ( string $type, mixed $query, array $options = [] ) : integer Executes calculation-related queries, such as those required for count.
conditions ( array $conditions, object $context ) : array Maps incoming conditions with their corresponding MongoDB-native operators.
configureClass ( string $class ) : Returns Configures a model class by overriding the default dependencies for 'set' and 'entity' , and sets the primary key to '_id', in keeping with Mongo's conventions.
connect ( ) : boolean Connects to the Mongo server. Matches up parameters from the constructor to create a Mongo database connection.
create ( string $query, array $options = [] ) : boolean Create new document
delete ( string $query, array $options = [] ) : boolean Delete document
describe ( mixed $collection, mixed $fields = [], array $meta = [] ) : array Gets the column 'schema' for a given MongoDB collection. Only returns a schema if the 'schema' configuration flag has been set in the constructor.
disconnect ( ) : boolean Disconnect from the Mongo server.
enabled ( string $feature = null ) : boolean With no parameter, checks to see if the mongo extension is installed. With a parameter, queries for a specific supported feature.
fields ( array $fields, object $context ) : array Return formatted identifiers for fields.
group ( string | array $group, object $context ) : array Formats group clauses for MongoDB.
limit ( mixed $limit, object $context ) : mixed Return formatted clause for limit.
name ( string $name ) : string Quotes identifiers.
order ( mixed $order, object $context ) : mixed Return formatted clause for order.
read ( string $query, array $options = [] ) : object Read from document
relationFieldName ( $type, $name ) : string Returns the field name of a relation name (camelBack).
relationship ( string $class, string $type, string $name, array $config = [] ) : array Document relationships.
respondsTo ( string $method, boolean $internal = false ) : boolean Determines if a given method can be called.
schema ( $query, $resource = null, $context = null ) : array Normally used in cases where the query is a raw string (as opposed to a Query object), to database must determine the correct column names from the result resource. Not applicable to this data source.
sources ( string $class = null ) : array Returns the list of collections in the currently-connected database.
update ( string $query, array $options = [] ) : boolean Update document

Méthodes protégées

Méthode Description
_checkConnection ( )
_conditions ( array $conditions, string $model, object $schema, object $context ) : array Protected helper method used to format conditions.
_deleteFile ( $conditions, $options = [] )
_group ( $group, $args, $options )
_init ( ) : void Initializer. Adds operator handlers which will later allow to correctly cast any values.
_isMongoCode ( $conditions )
_ok ( $result ) : boolean Parse a MongoCollection::() response and return true on success.
_operators ( $field, $operators, $schema )
_saveFile ( $data )

Method Details

__call() public méthode

For example (assuming this instance is stored in Connections as 'mongo'): Manually repairs a MongoDB instance Connections::get('mongo')->repairDB($db); // returns null
public __call ( string $method, array $params ) : mixed
$method string The name of native method to call. See the link above for available class methods.
$params array A list of parameters to be passed to the native method.
Résultat mixed The return value of the native method specified in `$method`.

__construct() public méthode

Constructor.
See also: lithium\data\Connections::add()
See also: lithium\data\source\MongoDb::$_schema
public __construct ( array $config = [] ) : void
$config array Configuration options required to connect to the database, including: - `'database'` _string_: The name of the database to connect to. Defaults to `null`. - `'host'` _string_: The IP or machine name where Mongo is running, followed by a colon, and the port number. Defaults to `'localhost:27017'`. - `'persistent'` _mixed_: Determines a persistent connection to attach to. See the `$options` parameter of [`Mongo::__construct()`](http://php.net/mongo.construct.php) for more information. Defaults to `false`, meaning no persistent connection is made. - `'timeout'` _integer_: The number of milliseconds a connection attempt will wait before timing out and throwing an exception. Defaults to `100`. - `'schema'` _\Closure_: A closure or anonymous function which returns the schema information for a model class. See the `$_schema` property for more information. - `'gridPrefix'` _string_: The default prefix for MongoDB's `chunks` and `files` collections. Defaults to `'fs'`. - `'replicaSet'` _string_: See the documentation for `Mongo::__construct()`. Defaults to `false`. - `'readPreference'` _mixed_: May either be a single value such as Mongo::RP_NEAREST, or an array containing a read preference and a tag set such as: array(Mongo::RP_SECONDARY_PREFERRED, array('dc' => 'east) See the documentation for `Mongo::setReadPreference()`. Defaults to null. Typically, these parameters are set in `Connections::add()`, when adding the adapter to the list of active connections.
Résultat void

__destruct() public méthode

Destructor. Ensures that the server connection is closed and resources are freed when the adapter instance is destroyed.
public __destruct ( ) : void
Résultat void

_checkConnection() protected méthode

protected _checkConnection ( )

_conditions() protected méthode

Protected helper method used to format conditions.
protected _conditions ( array $conditions, string $model, object $schema, object $context ) : array
$conditions array The conditions array to be processed.
$model string The name of the model class used in the query.
$schema object The object containing the schema definition.
$context object The `Query` object.
Résultat array Processed query conditions.

_deleteFile() protected méthode

protected _deleteFile ( $conditions, $options = [] )

_group() protected méthode

protected _group ( $group, $args, $options )

_init() protected méthode

Initializer. Adds operator handlers which will later allow to correctly cast any values.
See also: lithium\data\source\MongoDb::$_operators
See also: lithium\data\source\MongoDb::_operators()
protected _init ( ) : void
Résultat void

_isMongoCode() protected méthode

protected _isMongoCode ( $conditions )

_ok() protected méthode

Parse a MongoCollection::() response and return true on success.
protected _ok ( $result ) : boolean
Résultat boolean

_operators() protected méthode

protected _operators ( $field, $operators, $schema )

_saveFile() protected méthode

protected _saveFile ( $data )

calculation() public méthode

Executes calculation-related queries, such as those required for count.
public calculation ( string $type, mixed $query, array $options = [] ) : integer
$type string Only accepts `count`.
$query mixed The query to be executed.
$options array Optional arguments for the `read()` query that will be executed to obtain the calculation result.
Résultat integer Result of the calculation.

conditions() public méthode

Maps incoming conditions with their corresponding MongoDB-native operators.
public conditions ( array $conditions, object $context ) : array
$conditions array Array of conditions
$context object Context with which this method was called; currently inspects the return value of `$context->type()`.
Résultat array Transformed conditions

configureClass() public méthode

Configures a model class by overriding the default dependencies for 'set' and 'entity' , and sets the primary key to '_id', in keeping with Mongo's conventions.
See also: lithium\data\Model::$_meta
See also: lithium\data\Model::$_classes
public configureClass ( string $class ) : Returns
$class string The fully-namespaced model class name to be configured.
Résultat Returns an array containing keys `'classes'` and `'meta'`, which will be merged with their respective properties in `Model`.

connect() public méthode

Connects to the Mongo server. Matches up parameters from the constructor to create a Mongo database connection.
See also: lithium\data\source\MongoDb::__construct()
public connect ( ) : boolean
Résultat boolean Returns `true` the connection attempt was successful, otherwise `false`.

create() public méthode

Create new document
public create ( string $query, array $options = [] ) : boolean
$query string
$options array
Résultat boolean

delete() public méthode

Delete document
public delete ( string $query, array $options = [] ) : boolean
$query string
$options array
Résultat boolean

describe() public méthode

Gets the column 'schema' for a given MongoDB collection. Only returns a schema if the 'schema' configuration flag has been set in the constructor.
See also: lithium\data\source\MongoDb::$_schema
public describe ( mixed $collection, mixed $fields = [], array $meta = [] ) : array
$collection mixed Specifies a collection name for which the schema should be queried.
$fields mixed Any schema data pre-defined by the model.
$meta array Any meta information pre-defined in the model.
Résultat array Returns an associative array describing the given collection's schema.

disconnect() public méthode

Don't call the Mongo->close() method. The driver documentation states this should not be necessary since it auto disconnects when out of scope. With version 1.2.7, when using replica sets, close() can cause a segmentation fault.
public disconnect ( ) : boolean
Résultat boolean True

enabled() public static méthode

With no parameter, checks to see if the mongo extension is installed. With a parameter, queries for a specific supported feature.
public static enabled ( string $feature = null ) : boolean
$feature string Test for support for a specific feature, i.e. `"transactions"` or `"arrays"`.
Résultat boolean Returns `true` if the particular feature (or if MongoDB) support is enabled, otherwise `false`.

fields() public méthode

MongoDB does nt require field identifer escaping; as a result, this method is not implemented.
public fields ( array $fields, object $context ) : array
$fields array Fields to be parsed
$context object
Résultat array Parsed fields array

group() public méthode

Formats group clauses for MongoDB.
public group ( string | array $group, object $context ) : array
$group string | array The group clause.
$context object
Résultat array Formatted `group` clause.

limit() public méthode

MongoDB doesn't require limit identifer formatting; as a result, this method is not implemented.
public limit ( mixed $limit, object $context ) : mixed
$limit mixed The `limit` clause to be formatted.
$context object The `Query` object instance.
Résultat mixed Formatted `limit` clause.

name() public méthode

MongoDb does not need identifiers quoted, so this method simply returns the identifier.
public name ( string $name ) : string
$name string The identifier to quote.
Résultat string The quoted identifier.

order() public méthode

Return formatted clause for order.
public order ( mixed $order, object $context ) : mixed
$order mixed The `order` clause to be formatted
$context object
Résultat mixed Formatted `order` clause.

read() public méthode

Read from document
public read ( string $query, array $options = [] ) : object
$query string
$options array
Résultat object

relationFieldName() public méthode

Returns the field name of a relation name (camelBack).
public relationFieldName ( $type, $name ) : string
Résultat string

relationship() public méthode

Document relationships.
public relationship ( string $class, string $type, string $name, array $config = [] ) : array
$class string
$type string Relationship type, e.g. `belongsTo`.
$name string
$config array
Résultat array

respondsTo() public méthode

Determines if a given method can be called.
public respondsTo ( string $method, boolean $internal = false ) : boolean
$method string Name of the method.
$internal boolean Provide `true` to perform check from inside the class/object. When `false` checks also for public visibility; defaults to `false`.
Résultat boolean Returns `true` if the method can be called, `false` otherwise.

schema() public méthode

Normally used in cases where the query is a raw string (as opposed to a Query object), to database must determine the correct column names from the result resource. Not applicable to this data source.
public schema ( $query, $resource = null, $context = null ) : array
Résultat array

sources() public méthode

Returns the list of collections in the currently-connected database.
public sources ( string $class = null ) : array
$class string The fully-name-spaced class name of the model object making the request.
Résultat array Returns an array of objects to which models can connect.

update() public méthode

Update document
public update ( string $query, array $options = [] ) : boolean
$query string
$options array
Résultat boolean

Property Details

$_autoConfig protected_oe property

List of configuration keys which will be automatically assigned to their corresponding protected class properties.
protected array $_autoConfig
Résultat array

$_boolean protected_oe property

List of comparison operators to use when performing boolean logic in a query.
protected array $_boolean
Résultat array

$_classes protected_oe property

Classes used by this class.
protected array $_classes
Résultat array

$_operators protected_oe property

Map of typical SQL-like operators to their MongoDB equivalents.
protected $_operators

$_schema protected_oe property

A closure or anonymous function which receives an instance of this class, a collection name and associated meta information, and returns an array defining the schema for an associated model, where the keys are field names, and the values are arrays defining the type information for each field. At a minimum, type arrays must contain a 'type' key. For more information on schema definitions, and an example schema callback implementation, see the $_schema property of the Model class.
See also: lithium\data\Model::$_schema
protected Closure $_schema
Résultat Closure

$connection public_oe property

The MongoDB object instance.
public object $connection
Résultat object

$server public_oe property

The Mongo class instance.
public object $server
Résultat object