hexcores/mongo-lite

MongoDB Lite 包

dev-master 2017-02-20 21:05 UTC

This package is auto-updated.

Last update: 2024-09-15 14:59:06 UTC


README

Mongo Lite PHP 是一个为 PHP 提供的 mongodb lite 包。

安装

您可以通过 Composer 安装库

将以下内容添加到 composer.json 文件中...

{
    "require": {
        "hexcores/mongo-lite": "dev-master"
    }
}

或者

通过终端安装

$ composer require 'hexcores/mongo-lite:dev-master'

用法

首先,您需要配置 Mongodb 连接。

$host = 'localhost';
$port = 27017;
$database = 'mongo_lite';

Hexcores\MongoLite\Connection::connect($host, $port, $database);

现在我们可以使用 Mongo Lite。

$connection = \Hexcores\MongoLite\Connection::instance($name);
$userCollection = new \Hexcores\MongoLite\Query($connection->collection('users'));
// or simply
$userCollection  = mongo_lite('users');

使用 MongoLite 进行 CRUD 操作

创建新记录

"created_at""updated_at" 字段将被 mongo_lite 自动填充。

$user = ['name' => 'Nyan', 'email' => 'nyan@example.com'];

$userCollection  = mongo_lite('users');
$userCollection->insert($user);
// or simply
mongo_lite_insert('users', $user);

更新记录

mongo_lite 将自动更新 updated_at 时间。

$updateName = ['name' => 'Lynn'];
$query = ['email' => 'nyan@exmapl.com'];

$userCollection  = mongo_lite('users');
$userCollection->update($query, $updateName);
// or simply
mongo_lite_update('users', $query, $updateName);

删除记录

$query = ['email' => 'nyan@exmapl.com'];

$userCollection  = mongo_lite('users');
$userCollection->delete($query);
// or simply
mongo_lite_delete('users', $query);

从数据库中查找记录

从集合中查找所有用户。

$users = mongo_lite('users')->all();

if ( count($users) > 0)
{
	foreach ( $users as $user)	
	{
		echo $user->name . '<br>';
	}
}

从数据库中查找单个记录。

// Find user by mongo id string
$user = mongo_lite('users')->first('5579227f8e973cdf148b4567');

// Find user by MongoId instance
$user = mongo_lite('users')->first(new MongoId('5579227f8e973cdf148b4567'));

// Find user by email
$user = mongo_lite('users')->first(['email' => 'nyan@example.com']);

echo $user->name;

MongoDB 的增量和减量

// Increment value 1 to page view field where 'slug' is equal 'about'
$page->increment(['slug' => 'about'], 'views');

// Increment value 5 to page view field where 'slug' is equal 'about'
$page->increment(['slug' => 'about'], 'views', 5);

// Decrement value 1 to page view field where 'slug' is equal 'about'
$page->increment(['slug' => 'about'], 'views', -1);

// DEcrement value 5 to page view field where 'slug' is equal 'about'
$page->increment(['slug' => 'about'], 'views', -5);

在 Laravel 和 LumenPHP 中使用

MongoLite 已经为 Laravel 和 LumenPHP 框架提供了 ServiceProvider

// Add ServiceProvider in 'config\app.php'
Hexcores\MongoLite\Laravel\MongoLiteServiceProvider