Yii2 Bootstrap 3
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Alexander Makarov c79994c773 Removed exception translation, updated translations 11 years ago
..
file doc fix. 11 years ago
ActiveQuery.php doc fix. 11 years ago
ActiveRecord.php moved extensions under yii. 11 years ago
ActiveRelation.php MongoDB Active Relation lazy load fixed. 11 years ago
CHANGELOG.md added CHANGELOGs for all the extensions 11 years ago
Collection.php doc fix. 11 years ago
Connection.php doc fix. 11 years ago
Database.php doc fix. 11 years ago
Exception.php Removed exception translation, updated translations 11 years ago
LICENSE.md moved extensions under yii. 11 years ago
Query.php doc fix. 11 years ago
README.md Added --prefer-dist to all docs 11 years ago
composer.json moved extensions under yii. 11 years ago

README.md

MongoDb Extension for Yii 2

This extension provides the MongoDB integration for the Yii2 framework.

Installation

This extension requires MongoDB PHP Extension version 1.3.0 or higher.

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist yiisoft/yii2-mongodb "*"

or add

"yiisoft/yii2-mongodb": "*"

to the require section of your composer.json.

Usage & Documentation

To use this extension, simply add the following code in your application configuration:

return [
	//....
	'components' => [
		'mongodb' => [
			'class' => '\yii\mongodb\Connection',
			'dsn' => 'mongodb://developer:password@localhost:27017/mydatabase',
		],
	],
];

This extension provides ActiveRecord solution similar ot the \yii\db\ActiveRecord. To declare an ActiveRecord class you need to extend \yii\mongodb\ActiveRecord and implement the collectionName and 'attributes' methods:

use yii\mongodb\ActiveRecord;

class Customer extends ActiveRecord
{
	/**
	 * @return string the name of the index associated with this ActiveRecord class.
	 */
	public static function collectionName()
	{
		return 'customer';
	}

	/**
	 * @return array list of attribute names.
	 */
	public function attributes()
	{
		return ['_id', 'name', 'email', 'address', 'status'];
	}
}

Note: collection primary key name ('_id') should be always explicitly setup as an attribute.

You can use \yii\data\ActiveDataProvider with \yii\mongodb\Query and \yii\mongodb\ActiveQuery:

use yii\data\ActiveDataProvider;
use yii\mongodb\Query;

$query = new Query;
$query->from('customer')->where(['status' => 2]);
$provider = new ActiveDataProvider([
	'query' => $query,
	'pagination' => [
		'pageSize' => 10,
	]
]);
$models = $provider->getModels();
use yii\data\ActiveDataProvider;
use app\models\Customer;

$provider = new ActiveDataProvider([
	'query' => Customer::find(),
	'pagination' => [
		'pageSize' => 10,
	]
]);
$models = $provider->getModels();

This extension supports MongoGridFS via classes under namespace "\yii\mongodb\file".

This extension supports logging and profiling, however log messages does not contain actual text of the performed queries, they contains only a “close approximation” of it composed on the values which can be extracted from PHP Mongo extension classes. If you need to see actual query text, you should use specific tools for that.