If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
इस tutorial में आप सीखेंगे कि Laravel Application में MongoDB database कैसे setup करना है , और किस तरह से MongoDB work करता है।
सबसे पहले एक fresh Laravel Application create करते हैं। मैं Laravel version 8 install कर रहा हूँ।
composer create-project --prefer-dist laravel/laravel:8.* laravelmongo
Laravel में MongoDB के साथ work करने के लिए सबसे पहली चीज है package को install करना। इसलिए सबसे jenssegers/mongodb package को install करेंगे।
composer require jenssegers/mongodb ^3.8
यह command , दो package install करेगी, पहला jenssegers/mongodb और दूसरा mongodb जिए आप vendor folder में check कर सकते हैं।
Next , हमें MongoDB database credentials set करने हैं , तो सबसे पहले .env file open करें और नीचे दिया गया code replace कर दें।
//File .env ------------------------ DB_CONNECTION=mongodb DB_HOST= DB_PORT= DB_DATABASE= DB_USERNAME= DB_PASSWORD=
यहां पर हमने सिर्फ driver name change किया है , क्योंकि हम MongoDB database को dsn URI के साथ connect करेंगे।
अब config/database.php file open करें और connections Array में नीचे दिया गया code insert कर दें।
//File : config/connections.php ------------------------ 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => "mongodb+srv://username:password@hostname/dbname?retryWrites=true&w=majority", ]
जरूरी नहीं कि , आप database को dsn से connect करें , अगर URL नहीं है तो आप username , pass का use भी कर सकते हैं। इसके लिए सबसे पहले .env file में username , password define करें फिर उसके बाद config/connections.php file में connections Array में नीचे दिया गया code में रख दे।
config/database.php ---------------------------- 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE'), 'username' => env('DB_USERNAME'), 'password' => env('DB_PASSWORD'), 'options' => [ 'database' => 'dbname' ] ],
That's It, Database setup हो गया है अब एक controller और model prepare करते हैं , जिससे हम data insert / retrieve कर सके।
अब , testing के लिए एक PostController बनाते हैं।
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class PostController extends Controller
{
public function posts() {
$posts = DB::table('posts')->get();
dd($posts);
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Jenssegers\Mongodb\Eloquent\Model;
class Post extends Model
{
use HasFactory;
// define collection / table name
protected $collection = "posts";
// define fillable fields
protected $fillable = [
'title', 'description'
];
}
finally , factories की help से dummy data insert करते हैं।
php artisan make:factory PostFactory --model=Post
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use App\Models\Post;
class PostFactory extends Factory
{
/**
* The name of the factory's corresponding model.
* @var string
*/
protected $model = Post::class;
/**
* Define the model's default state.
* @return array
*/
public function definition() {
return [
'title' => $this->faker->title,
'description' => $this->faker->text,
];
}
}
इसके बाद नीचे दी गयी command run करें और database में check करेंगे तो 20 records insert हो जायगे।
1. composer dump-autoload 2. php artisan tinker 3. Post::factory()->count(20)->create()
Loading ...