PHP code example of techapi / mongo-laravel

1. Go to this page and download the library: Download techapi/mongo-laravel library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

techapi / mongo-laravel example snippets


'connections' => [
    // ... outras conexões

    'mongodb' => [
        'driver'   => 'mongodb',
        'host'     => env('MONGO_HOST', 'localhost'),
        'port'     => env('MONGO_PORT', 27017),
        'username' => env('MONGO_USER', ''),
        'password' => env('MONGO_PASS', ''),
        'options'  => [
            'database' => env('MONGO_DB', 'laravel'),
            'authSource' => env('MONGO_AUTH_SOURCE', 'admin'), // Opcional
        ],
    ],
],

'providers' => [
    // ...
    Mongo\Providers\MongoServiceProvider::class,
],

'aliases' => [
    // ...
    'Mongo' => Mongo\Facades\Mongo::class,
],



namespace App\Models;

use Mongo\Facades\Mongo;

class User extends Mongo
{
    protected static string $collection = 'users';
}

use App\Models\User;

// Criar um novo usuário
$result = User::create([
    'name' => 'João Silva',
    'email' => '[email protected]',
    'age' => 30
]);

// Criar ou atualizar baseado em um filtro
$result = User::createOrUpdate(
    ['name' => 'João Silva', 'age' => 31], // dados
    ['email' => '[email protected]']         // filtro
);

// Buscar um usuário
$user = User::findOneData(['email' => '[email protected]'])->toArray();

// Buscar usuários com paginação
$users = User::findAllWithPaginate(
    ['age' => ['$gte' => 18]], // filtro
    10,                        // limite por página
    1                          // página atual
);

// Retorna:
// [
//     'data' => [...],
//     'paginate' => [
//         'current_page' => 1,
//         'total' => 100,
//         'per_page' => 10,
//         'last_page' => 10
//     ]
// ]



namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index(Request $request)
    {
        $page = $request->get('page', 1);
        $limit = $request->get('limit', 10);
        
        $users = User::findAllWithPaginate([], $limit, $page);
        
        return response()->json($users);
    }
    
    public function store(Request $request)
    {
        $userData = $request->validate([
            'name' => '   }
    
    public function update(Request $request, string $email)
    {
        $userData = $request->validate([
            'name' => 'string',
            'age' => 'integer|min:0'
        ]);
        
        $result = User::createOrUpdate($userData, ['email' => $email]);
        
        return response()->json(['updated' => $result > 0]);
    }
}

// Buscar usuários com idade entre 18 e 65 anos
$adults = User::findAllWithPaginate([
    'age' => [
        '$gte' => 18,
        '$lte' => 65
    ]
]);

// Buscar usuários por múltiplos emails
$users = User::findAllWithPaginate([
    'email' => [
        '$in' => ['[email protected]', '[email protected]']
    ]
]);

// Buscar usuários cujo nome contém "Silva"
$users = User::findAllWithPaginate([
    'name' => new \MongoDB\BSON\Regex('Silva', 'i')
]);
bash
# Instalar a extensão
sudo apt-get update
sudo apt-get install php-mongodb

# Ou via PECL
sudo pecl install mongodb

# Adicionar ao php.ini se necessário
echo "extension=mongodb" | sudo tee -a /etc/php/8.2/cli/php.ini
echo "extension=mongodb" | sudo tee -a /etc/php/8.2/fpm/php.ini

# Reiniciar serviços
sudo systemctl restart apache2  # ou nginx
sudo systemctl restart php8.2-fpm
bash
# Via Homebrew
brew install [email protected]
brew install mongodb/brew/mongodb-community

# Instalar extensão via PECL
pecl install mongodb

# Adicionar ao php.ini
echo "extension=mongodb" >> /usr/local/etc/php/8.2/php.ini

# Reiniciar serviços se necessário
brew services restart [email protected]
bash
php artisan make:mongo-model User
bash
php artisan make:mongo-model User --collection=usuarios