How to setup MongoDB In Laravel : Laravel with MongoDB

Other Blogs

Blogs ❯❯ Laravel

Image could not load

Image on pixabay

इस tutorial में आप सीखेंगे कि Laravel Application में MongoDB database कैसे setup करना है , और किस तरह से MongoDB work करता है।

Install fresh Laravel APP

सबसे पहले एक fresh Laravel Application create करते हैं। मैं Laravel version 8 install कर रहा हूँ।

composer create-project --prefer-dist laravel/laravel:8.* laravelmongo

Install jenssegers/mongodb Package

Laravel में MongoDB के साथ work करने के लिए सबसे पहली चीज है package को install करना। इसलिए सबसे jenssegers/mongodb package को install करेंगे।

composer require jenssegers/mongodb ^3.8

यह command , दो package install करेगी, पहला jenssegers/mongodb और दूसरा mongodb जिए आप vendor folder में check कर सकते हैं।

Setup Database

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",
]
Important

जरूरी नहीं कि , आप 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 कर सके।

Create Controller

अब , 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); } }

Create Model

<?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' ]; }

Insert dummy data

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()
Recent Blogs

Loading ...

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook

Your Thought ?

Please wait . . .

    0 Comment(s) found !