MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Lumen dan MongoDB?

Kami sebenarnya menggunakan Lumen, Laravel, Mongo, dan MySQL dalam satu proyek raksasa sehingga saya dapat membantu Anda melalui yang satu ini. Dengan asumsi Anda ingin menggunakan MongoDB dengan fasih alih-alih dengan MongoClient mentah. Anda dapat menemukan perpustakaan yang saya gunakan dari jenssegers di sini .

Instal Ekstensi MongoDB

Pertama, Anda harus menginstal dependensi agar PHP dapat berinteraksi dengan mongo. Spesifik untuk menginstal ekstensi mongo dapat ditemukan di dokumentasi PHP .

Setelah itu Anda harus mengedit file php.ini untuk platform (apache/cli/nginx) untuk memuat ekstensi. Saya menambahkan yang berikut ini sebelum Pengaturan Modul

extension=mongo.so

Tak perlu dikatakan lagi Anda perlu me-restart Apache/nginx setelah mengubah konfigurasi.

Mengonfigurasi Lumen

Di folder lumen root Anda, Anda dapat menambahkannya ke kebutuhan Anda dengan perintah berikut.

composer require jenssegers/mongodb

Dari sana Anda juga harus memuat MongodbServiceProvider sebelum Fasad atau Eloquent diinisialisasi.

$app->register(Jenssegers\Mongodb\MongodbServiceProvider::class);

$app->withFacades();

$app->withEloquent();

Untuk mempermudah pengaturan konfigurasi, saya juga membuat folder konfigurasi dan file konfigurasi database.php. Karena Lumen tidak mencoba memuat otomatis atau mencari direktori ini, kami harus memberi tahunya untuk memuat konfigurasi ini. Saya meletakkan baris berikut tepat sebelum memuat rute aplikasi.

$app->configure('database');

Di database.php driver mongodb membutuhkan struktur tertentu. Saya telah menyertakan mysql di sini karena saya menggunakan keduanya, tetapi jika Anda menggunakan mongo secara eksklusif, Anda dapat mengubah default ke mongodb dan menghapus konfigurasi mysql.

return  [
    'default' => 'mysql',

    'connections' => [
        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', ''),
            'username'  => env('DB_USERNAME', ''),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

        'mongodb' => array(
            'driver'   => 'mongodb',
            'host'     => env('MONGODB_HOST', 'localhost'),
            'port'     => env('MONGODB_PORT', 27017),
            'username' => env('MONGODB_USERNAME', ''),
            'password' => env('MONGODB_PASSWORD', ''),
            'database' => env('MONGODB_DATABASE', ''),
            'options' => array(
                'db' => env('MONGODB_AUTHDATABASE', '') //Sets the auth DB
            )
        ),

    ],
];

Dengan tidak adanya konfigurasi, Anda sekarang dapat membuat model, pada saat menulis ini untuk membuat model untuk mongo (periksa halaman github), Anda dapat menggunakan yang berikut ini sebagai basis. Anda dapat mengabaikan variabel $connection jika mongo adalah driver default Anda.

<?php

namespace App;

use Jenssegers\Mongodb\Model as Eloquent;

class Example extends Eloquent 
{
    protected $connection = 'mongodb';
    protected $collection = 'example';
    protected $primaryKey = '_id';
}

Ini dia, Anda seharusnya dapat berinteraksi dengan mongo secara normal, untuk spesifikasi driver, lihat halaman github untuk dokumentasinya.

Jika jawaban ini membantu, bisakah Anda menandainya sebagai jawaban?



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Temukan menggunakan _id tidak berfungsi dengan agregasi

  2. Menggunakan $addFields di Driver MongoDB untuk C#

  3. Luwak - urutkan Tanggal berdasarkan tanggal saja, abaikan waktu

  4. Bagaimana cara saya melakukan lebih dari/kurang dari menggunakan MongoDB?

  5. cara memperbarui banyak dokumen dengan nilai berbeda