MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Lumen và MongoDB?

Chúng tôi thực sự đang sử dụng Lumen, Laravel, Mongo và MySQL trong một dự án khổng lồ nên tôi có thể giúp bạn thông qua dự án này. Giả sử bạn muốn sử dụng MongoDB với hùng biện thay vì MongoClient thô. Bạn có thể tìm thấy thư viện tôi đang sử dụng từ jenssegers tại đây .

Cài đặt phần mở rộng MongoDB

Trước tiên, bạn sẽ cần cài đặt các phụ thuộc để PHP tương tác với mongo. Bạn có thể tìm thấy chi tiết cụ thể để cài đặt tiện ích mở rộng mongo trên tài liệu PHP .

Sau đó, bạn sẽ phải chỉnh sửa các tệp php.ini cho các nền tảng (apache / cli / nginx) để tải phần mở rộng. Tôi đã thêm phần sau trước Cài đặt mô-đun

extension=mongo.so

Không cần phải nói rằng bạn cần khởi động lại apache / nginx sau khi thay đổi cấu hình.

Định cấu hình Lumen

Trong thư mục lumen gốc, bạn có thể thêm nó theo yêu cầu của mình bằng lệnh sau.

composer require jenssegers/mongodb

Từ đó, bạn cũng cần tải MongodbServiceProvider trước Facades hoặc Eloquent được khởi tạo.

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

$app->withFacades();

$app->withEloquent();

Để đơn giản hóa việc tổ chức cấu hình, tôi cũng đã tạo một thư mục cấu hình và một tệp cấu hình database.php. Vì Lumen không cố gắng tự động tải hoặc tìm kiếm thư mục này nên chúng tôi phải yêu cầu nó tải cấu hình này. Tôi đặt dòng sau ngay trước khi tải các tuyến ứng dụng.

$app->configure('database');

Trong database.php, trình điều khiển mongodb yêu cầu một cấu trúc cụ thể. Tôi đã bao gồm mysql ở đây vì tôi sử dụng cả hai, nhưng nếu bạn đang sử dụng riêng mongo, bạn có thể thay đổi mặc định thành mongodb và xóa cấu hình 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
            )
        ),

    ],
];

Với cấu hình hiện tại, bạn có thể tạo một mô hình, khi viết phần này để tạo mô hình cho mongo (kiểm tra trang github), bạn có thể sử dụng phần sau làm cơ sở. Bạn có thể bỏ qua biến $ connection nếu mongo là trình điều khiển mặc định của bạn.

<?php

namespace App;

use Jenssegers\Mongodb\Model as Eloquent;

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

Đến đó, bạn sẽ có thể tương tác với mongo một cách bình thường, để biết chi tiết cụ thể của trình điều khiển, hãy xem trang github để biết tài liệu về nó.

Nếu câu trả lời này hữu ích, bạn có thể đánh dấu nó là câu trả lời không?



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:$ elemMatch

  2. MongoDB không xử lý tổng hợp với allowDiskUsage:True

  3. Cải thiện cấu trúc tổng hợp MongoDB

  4. Chạy mongodb trên ubuntu 16.04 LTS

  5. Cách xử lý các lệnh gọi lại trong vòng lặp for (Node.JS)