Tôi có thể sử dụng mongodb với laravel không?

MongoDB là một ứng dụng cơ sở dữ liệu ghi nhớ đa nền tảng, mã nguồn mở. MongoDB, một ứng dụng cơ sở dữ liệu NoSQL, sử dụng các tài liệu giống với JSON và có thể bao gồm hoặc không bao gồm các lược đồ. Đóng gói cấp cao của trình điều khiển PHP là Thư viện MongoDB PHP. Quy trình cài đặt MongoDB trên dự án Laravel. Bài viết này sẽ giải thích ngắn gọn cho bạn Cách cài đặt MongoDB trên Laravel Project

Cài đặt MongoDB trên Dự án Laravel

Bước 1. Cài đặt kho lưu trữ. Chuyển đến thư mục dự án của bạn, rồi ra lệnh,

Tôi có thể sử dụng mongodb với laravel không?

 

Bước 2. Tiếp theo, chạy thành phần để cài đặt Jenssegers/MongoDB

Tôi có thể sử dụng mongodb với laravel không?

 

Bước 3. Bao gồm nhà cung cấp dịch vụ

Tôi có thể sử dụng mongodb với laravel không?

 

Bước 4. Thêm phần sau vào danh sách nhà cung cấp dịch vụ trong cấu hình/ứng dụng của bạn. tập tin php

Bước 5. Cài đặt Thiết lập cơ sở dữ liệu. Cấu hình cơ sở dữ liệu sau đó phải được đặt trong config/database. php. Thêm mã sau đây,

Hello anh em, đến hẹn lại lên hôm nay mình xin chia sẻ với mọi người về chủ đề Laravel kết hợp với MongoDB mà thông thường ta hay kết hợp Laravel với MySQL. And default, Laravel chỉ hỗ trợ các cơ sở dữ liệu có cấu trúc như cấu trúc. MySQL, PostgreSQL, SQLite, Máy chủ SQL. Tuy nhiên theo thời thế thì NoSQL ngày càng phát triển mạnh mẽ và được tin dùng bởi nó linh động và có tốc độ cao mà điển hình là MongoDB. Trong phạm vi bài viết này mình chỉ xin đề cập đến MongoDB thay cho cơ sở dữ liệu không có cấu trúc NoSQL. Để tận dụng được những điểm tốt của NoSQL bây giờ chúng ta sẽ tìm cách để có thể sử dụng MongoDB trong Laravel để mang lại hiệu quả tốt nhất. Start đầu hủy bỏ

Cài đặt và sử dụng

Để cài đặt MongoDB ta chỉ cần vài bước cơ bản như sau. (ở đây mình cài đặt trên Ubuntu 16. 04, trên các hệ thống điều hành khác mà bạn có thể tham khảo tại trang chủ của nó)

B1. Thêm gói

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

B2

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

B3

sudo apt-get update

B 4. Cài đặt MongoDB

sudo apt-get install -y mongodb-org

Sau khi cài đặt xong, ta đã có mongodb trong máy rồi, việc tiếp theo là ta sẽ cài đặt thêm 1 công cụ để tiện quản lý cơ sở dữ liệu. Nó giống như MySQL Workbench thì ở đây ta sẽ sử dụng MongoDB Compass. Việc cài đặt nó khá đơn giản nên các bạn có thể cài đặt theo hướng dẫn này nhé

Như vậy là ta đã có MongoDB chạy trong máy rồi. Nhưng vẫn chưa đủ, ta phải cài đặt thêm driver để PHP có thể kết nối và thao tác với MongoDB. Việc cài đặt trình điều khiển này diễn ra như sau

$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule update --init
$ phpize
$ ./configure
$ make all
$ sudo make install

Và cuối cùng ta cần làm đó là cài đặt gói hỗ trợ Laravel kết nối và thao tác với MongoDB giống như Eloquent mặc định của Laravel. Gói đó là jensegers/mongodb. Cài đặt đơn giản qua nhà soạn nhạc.

sudo apt-get update
8. Mọi thứ đã có sẵn, giờ ta có thể sử dụng ngay. Bây giờ ở model ta sẽ extends class Model Eloquent của mongodb

use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class User extends Eloquent {}

Và bây giờ mọi thứ giống như Eloquent tương tác với MySQL rồi nhé

$users = User::all();
$user = User::find('517c43667db388101e00000f');
$users = User::where('votes', '>', 100)->take(10)->get();
$users = User::where('votes', '>', 100)->orWhere('name', 'John')->get();
$users = User::whereIn('age', [16, 18, 20])->get();
// OrderBy
$users = User::orderBy('name', 'desc')->get();
// Offset & Limit
$users = User::skip(10)->take(5)->get();
// Distinct
$users = User::distinct()->get(['name']);
// Advanced Wheres
$users = User::where('name', '=', 'John')->orWhere(function($query)
    {
        $query->where('votes', '>', 100)
              ->where('title', '<>', 'Admin');
    })
    ->get();
// Group By
$users = Users::groupBy('title')->get(['title', 'name']);
// Like
$user = Comment::where('body', 'like', '%spam%')->get();

// Hỗ trợ luôn soft delete
use Jenssegers\Mongodb\Eloquent\SoftDeletes;

class User extends Eloquent {

    use SoftDeletes;

    protected $dates = ['deleted_at'];

}
// ...

Ngoài MongoDB còn có các đặc biệt về toán tử

________số 8

quan hệ

Hỗ trợ các loại quan hệ sau

  • có một
  • Co nhiêu
  • thuộc về
  • thuộc về nhiều
  • embedsOne
  • embedsMany

Các quan hệ

sudo apt-get update
9,
sudo apt-get install -y mongodb-org
0,
sudo apt-get install -y mongodb-org
1 về cơ bản cách lưu dữ liệu giống như với MySQL nhưng với
sudo apt-get install -y mongodb-org
2 thì lại là một điểm khác biệt. Ở MySQL ta dùng thêm 1 bảng trung gian để lưu hệ thống gọi là bảng tổng hợp nhưng với MongoDB thì ta không cần làm như vậy mà ta chỉ cần lưu id của bảng quan hệ vào 1 trường dạng mảng của bảng còn lại. Ví dụ như User thuộcToMany với Vai trò thì ta trong bảng người dùng có trường role_ids lưu id của vai trò mà người dùng đó giữ đồng thời trong bảng vai trò ta lại có trường user_ids là mảng chứa id người dùng mà các vai trò đó thuộc về.
Tôi có thể sử dụng mongodb với laravel không?

Ngoài các quan hệ đó ta còn có thêm 2 quan hệ đặc biệt nữa thể hiện đặc tính của MongoDB đó là

sudo apt-get install -y mongodb-org
3 và
sudo apt-get install -y mongodb-org
4. 2 quan hệ này khá giống với
sudo apt-get update
9 và
sudo apt-get install -y mongodb-org
0 tuy nhiên điểm khác biệt là Mô hình nhúng này sẽ nằm trong đối tượng của Mô hình cha. Ví dụ Người dùng có nhiều mạng xã hội tài khoản thì về mặt dữ liệu sẽ là

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
7

Quan hệ MySQL

Ngoài ra, nếu trong dự án của bạn sử dụng cả mongodb và mysql thì gói này vẫn hỗ trợ 1 đặc điểm để có thể hoạt động với các quan hệ giống như mặc định của Laravel đó là

sudo apt-get install -y mongodb-org
7. Cách sử dụng như sau. Mô hình người dùng sử dụng mysql để lưu trữ ta khai báo như sau

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
9

Còn với Message model used mongodb to save archive

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
0

hàng đợi

Chính sửa file config/queue. php

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
1

Để xử lý các công việc thất bại ta chỉnh sửa config/queue. php

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
2

Thêm nhà cung cấp dịch vụ.

sudo apt-get install -y mongodb-org
8

Hộ chiếu Laravel

Ngoài ra trong quá trình tìm hiểu và làm việc với MongoDB, khi mình thử với Laravel Passport lại không hỗ trợ MongoDB. Vì vậy ta lại cần thêm 1 gói để có thể tùy chỉnh lại hộ chiếu để sử dụng cho MongoDB. Đó là Laravel MongoDB Passport. Nôm na thì tác giả đã viết lại các mô hình ẩn được sử dụng cho Laravel Passport mặc định hỗ trợ cho MongoDB

Cài đặt bằng nhà soạn nhạc.

sudo apt-get install -y mongodb-org
9 Về cách sử dụng thì hoàn toàn tương tự Laravel Passport. Ta chỉ cần sửa đổi một chút lớp Người dùng

Làm cách nào để triển khai MongoDB trong Laravel?

Bạn có thể làm như vậy bằng lệnh sau. .
pecl cài đặt mongodb. .
cp /opt/homebrew/Hầm/pcre2/10. 36/bao gồm/pcre2. h /opt/homebrew/Cellar/php\@7. */7. *. */gồm/php/ext/pcre/pcre2. h. .
nhà soạn nhạc tạo dự án laravel/laravel laravel-mongodb. .
cd laravel-mongodb. .
nghệ nhân php phục vụ. .
nhà soạn nhạc yêu cầu jensegers/mongodb

Cơ sở dữ liệu nào có thể được sử dụng với Laravel?

Hiện tại, Laravel cung cấp hỗ trợ của bên thứ nhất cho năm cơ sở dữ liệu. .
MariaDB 10. 3+ (Chính sách phiên bản)
mysql 5. 7+ (Chính sách phiên bản)
PostgreSQL 10. 0+ (Chính sách phiên bản)
SQLite 3. 8. 8+
SQL Server 2017+ (Chính sách phiên bản)

Làm cách nào để sử dụng MongoDB với Laravel 8?

Ví dụ hướng dẫn Laravel 8 MongoDB CRUD .
Bước 1. Cài đặt Laravel 8. .
Bước 2. Định cấu hình cơ sở dữ liệu MongoDB. .
Bước 3. Cài đặt gói laravel-mongodb. .
Bước 4. Thêm tuyến đường. .
Bước 5. Tạo Model và Controller. .
Bước 6. Tạo tập tin Blade

Laravel có hỗ trợ NoSQL không?