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