MongoDB tổng hợp Laravel

Mô hình Eloquent và Trình tạo truy vấn có hỗ trợ MongoDB, sử dụng API gốc của Laravel. Thư viện này mở rộng các lớp gốc của Laravel, vì vậy nó sử dụng chính xác các phương thức giống nhau

Mục lục

Cài đặt

Đảm bảo rằng bạn đã cài đặt trình điều khiển MongoDB PHP. Bạn có thể tìm thấy hướng dẫn cài đặt tại http. //php. net/manual/en/mongodb. cài đặt. php

CẢNH BÁO. Trình điều khiển PHP mongo cũ không còn được hỗ trợ trong các phiên bản >= 3. 0

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

composer require jenssegers/mongodb

Phiên bản Laravel Khả năng tương thích

LaravelPackage4. 2. x2. 0. x5. 0. x2. 1. x5. 1. x2. 2. x hoặc 3. 0. x5. 2. x2. 3. x hoặc 3. 0. x5. 3. x3. 1. x hoặc 3. 2. x5. 4. x3. 2. x

Và thêm nhà cung cấp dịch vụ vào

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

00

Jenssegers\Mongodb\MongodbServiceProvider::class,

Để sử dụng với Lumen, hãy thêm nhà cung cấp dịch vụ vào

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

01. Trong tệp này, bạn cũng sẽ cần bật Eloquent. Tuy nhiên, bạn phải đảm bảo rằng cuộc gọi của bạn đến

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

02 ở bên dưới nơi bạn đã đăng ký

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

03

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

Nhà cung cấp dịch vụ sẽ đăng ký tiện ích mở rộng cơ sở dữ liệu mongodb với trình quản lý cơ sở dữ liệu ban đầu. Không cần đăng ký thêm mặt tiền hoặc đối tượng. Khi sử dụng các kết nối mongodb, Laravel sẽ tự động cung cấp cho bạn các đối tượng mongodb tương ứng

Để sử dụng bên ngoài Laravel, hãy xem Capsule manager và thêm

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

nâng cấp

Nâng cấp từ phiên bản 2 lên 3

Trong bản phát hành chính mới này hỗ trợ phần mở rộng mongodb PHP mới, chúng tôi cũng đã di chuyển vị trí của lớp Mô hình và thay thế lớp mô hình MySQL bằng một đặc điểm

Vui lòng thay đổi tất cả các tham chiếu

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

04 thành

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

05 ở đầu tệp mô hình hoặc bí danh đã đăng ký của bạn

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

Nếu bạn đang sử dụng các quan hệ kết hợp, các lớp MySQL của bạn bây giờ sẽ mở rộng lớp mô hình Eloquent ban đầu

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

06 thay vì loại bỏ

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

07. Thay vào đó hãy sử dụng đặc điểm

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

08 mới. Điều này sẽ làm cho mọi thứ rõ ràng hơn vì chỉ có một lớp mô hình duy nhất trong gói này

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

Các mối quan hệ được nhúng hiện trả về một

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

09 thay vì một lớp Bộ sưu tập tùy chỉnh. Nếu bạn đang sử dụng một trong các phương thức đặc biệt có sẵn, hãy chuyển đổi chúng thành Thao tác thu thập

$books = $user->books()->sortBy('title');

Cấu hình

Thay đổi tên kết nối cơ sở dữ liệu mặc định của bạn trong

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

10

'default' => env('DB_CONNECTION', 'mongodb'),

Và thêm một kết nối mongodb mới

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

0

Bạn có thể kết nối với nhiều máy chủ hoặc bộ bản sao với cấu hình sau

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

1

Ngoài ra, bạn có thể sử dụng chuỗi kết nối MongoDB

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

2

Vui lòng tham khảo tài liệu chính thức của MongoDB để biết định dạng URI của nó. https. // tài liệu. mongodb. com/thủ công/tham chiếu/chuỗi kết nối/

hùng hồn

Gói này bao gồm một lớp Eloquent hỗ trợ MongoDB mà bạn có thể sử dụng để xác định các mô hình cho các bộ sưu tập tương ứng

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

Lưu ý rằng chúng tôi đã không cho Eloquent biết bộ sưu tập nào sẽ được sử dụng cho mô hình

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

11. Giống như Eloquent ban đầu, tên viết thường, số nhiều của lớp sẽ được sử dụng làm tên bộ sưu tập trừ khi một tên khác được chỉ định rõ ràng. Bạn có thể chỉ định một bộ sưu tập tùy chỉnh (bí danh cho bảng) bằng cách xác định thuộc tính

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

12 trên mô hình của bạn

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

4

GHI CHÚ. Eloquent cũng sẽ giả định rằng mỗi bộ sưu tập có một cột khóa chính có tên là id. Bạn có thể xác định thuộc tính

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

13 để ghi đè quy ước này. Tương tự như vậy, bạn có thể xác định thuộc tính

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

14 để ghi đè tên của kết nối cơ sở dữ liệu sẽ được sử dụng khi sử dụng mô hình

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

5

Mọi thứ khác (nên) hoạt động giống như mô hình Eloquent ban đầu. Đọc thêm về Eloquent trên http. // ấu trùng. com/docs/hùng hồn

Không bắt buộc. bí danh

Bạn cũng có thể đăng ký bí danh cho mô hình MongoDB bằng cách thêm phần sau vào mảng bí danh trong

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

00

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

6

Điều này sẽ cho phép bạn sử dụng bí danh đã đăng ký như

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

7

Trình tạo truy vấn

Trình điều khiển cơ sở dữ liệu cắm ngay vào trình tạo truy vấn ban đầu. Khi sử dụng các kết nối mongodb, bạn sẽ có thể xây dựng các truy vấn trôi chảy để thực hiện các thao tác với cơ sở dữ liệu. Để thuận tiện cho bạn, có một bí danh

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

12 cho

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

17 cũng như một số toán tử/hoạt động cụ thể của mongodb bổ sung

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

8

Nếu bạn không thay đổi kết nối cơ sở dữ liệu mặc định của mình, bạn sẽ cần chỉ định nó khi truy vấn

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

9

Đọc thêm về trình tạo truy vấn trên http. // ấu trùng. com/tài liệu/truy vấn

Lược đồ

Trình điều khiển cơ sở dữ liệu cũng có hỗ trợ trình tạo lược đồ (có giới hạn). Bạn có thể dễ dàng thao tác các bộ sưu tập và đặt chỉ mục

composer require jenssegers/mongodb
0

Các hoạt động được hỗ trợ là

  • tạo và thả
  • bộ sưu tập
  • hasCollection
  • index và dropIndex (chỉ số tổng hợp cũng được hỗ trợ)
  • độc nhất
  • nền, thưa thớt, hết hạn, không gian địa lý (dành riêng cho MongoDB)

Tất cả các hoạt động khác (không được hỗ trợ) được triển khai dưới dạng các phương thức truyền qua giả, vì MongoDB không sử dụng lược đồ được xác định trước. Đọc thêm về trình tạo lược đồ trên http. // ấu trùng. com/docs/lược đồ

chỉ số không gian địa lý

Chỉ mục không gian địa lý thuận tiện cho việc truy vấn các tài liệu dựa trên vị trí. Chúng có hai dạng.

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

18 và

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

19. Sử dụng trình tạo lược đồ để thêm chúng vào bộ sưu tập

Để thêm chỉ mục

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

18

composer require jenssegers/mongodb
1

Để thêm một chỉ mục

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

19

composer require jenssegers/mongodb
2

tiện ích mở rộng

xác thực

Nếu bạn muốn sử dụng chức năng Auth gốc của Laravel, hãy đăng ký nhà cung cấp dịch vụ đi kèm này

composer require jenssegers/mongodb
3

Nhà cung cấp dịch vụ này sẽ sửa đổi một chút DatabaseReminderRepository nội bộ để thêm hỗ trợ cho lời nhắc mật khẩu dựa trên MongoDB. Nếu bạn không sử dụng lời nhắc mật khẩu, bạn không phải đăng ký nhà cung cấp dịch vụ này và mọi thứ khác sẽ hoạt động tốt

hàng đợi

Nếu bạn muốn sử dụng MongoDB làm phụ trợ cơ sở dữ liệu của mình, hãy thay đổi trình điều khiển trong

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

22

composer require jenssegers/mongodb
4

Nếu bạn muốn sử dụng MongoDB để xử lý các công việc thất bại, hãy thay đổi cơ sở dữ liệu trong

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

22

composer require jenssegers/mongodb
5

Và thêm nhà cung cấp dịch vụ vào

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

00

composer require jenssegers/mongodb
6

lính gác

Nếu bạn muốn sử dụng thư viện này với Sentry, hãy xem https. //github. com/jensegers/Laravel-MongoDB-Sentry

phiên

Trình điều khiển phiên MongoDB có sẵn trong một gói riêng, hãy xem https. //github. com/jensegers/Laravel-MongoDB-Phiên

ví dụ

Sử dụng cơ bản

Lấy tất cả các mô hình

composer require jenssegers/mongodb
7

Truy xuất bản ghi bằng khóa chính

composer require jenssegers/mongodb
8

ở đâu

composer require jenssegers/mongodb
9

Hoặc Tuyên bố

Jenssegers\Mongodb\MongodbServiceProvider::class,

0

Và báo cáo

Jenssegers\Mongodb\MongodbServiceProvider::class,

1

Sử dụng Where In với một mảng

Jenssegers\Mongodb\MongodbServiceProvider::class,

2

Khi sử dụng

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

25 đối tượng sẽ được trả về nếu trường không tồn tại. Kết hợp với

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

26 để loại bỏ những tài liệu đó

Sử dụng ở đâu giữa

Jenssegers\Mongodb\MongodbServiceProvider::class,

3

Trường hợp null

Jenssegers\Mongodb\MongodbServiceProvider::class,

4

Đặt bởi

Jenssegers\Mongodb\MongodbServiceProvider::class,

5

Bù trừ & Giới hạn

Jenssegers\Mongodb\MongodbServiceProvider::class,

6

Riêng biệt

Distinct yêu cầu một trường để trả về các giá trị riêng biệt

Jenssegers\Mongodb\MongodbServiceProvider::class,

7

Khác biệt có thể được kết hợp với nơi

Jenssegers\Mongodb\MongodbServiceProvider::class,

8

Nâng cao

Jenssegers\Mongodb\MongodbServiceProvider::class,

9

nhóm theo

Các cột đã chọn không được nhóm sẽ được tổng hợp bằng hàm $last

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

0

tổng hợp

Tập hợp chỉ khả dụng cho các phiên bản MongoDB lớn hơn 2. 2

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

1

Aggregations có thể được kết hợp với where

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

2

Tập hợp cũng có thể được sử dụng trên tài liệu con

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

3

GHI CHÚ. tập hợp này chỉ hoạt động với các tài liệu con đơn lẻ (như embedsOne) chứ không phải mảng tài liệu con (như embedsMany)

Giống

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

4

Tăng hoặc giảm giá trị của một cột

Thực hiện tăng hoặc giảm (mặc định 1) trên các thuộc tính được chỉ định

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

5

Số lượng đối tượng cập nhật được trả về

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

6

Bạn cũng có thể chỉ định các cột bổ sung để cập nhật

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

7

xóa mềm

Khi xóa mềm một mô hình, nó không thực sự bị xóa khỏi cơ sở dữ liệu của bạn. Thay vào đó, dấu thời gian đã xóa_at được đặt trên bản ghi. Để kích hoạt xóa mềm cho một mô hình, hãy áp dụng SoftDeletingTrait cho mô hình

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

8

Để biết thêm thông tin kiểm tra http. // ấu trùng. com/docs/eloquent#soft-deleting

Các toán tử cụ thể của MongoDB

tồn tại

So khớp các tài liệu có trường được chỉ định

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

9

Tất cả

So khớp các mảng chứa tất cả các phần tử được chỉ định trong truy vấn

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

0

Kích cỡ

Chọn tài liệu nếu trường mảng có kích thước được chỉ định

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

1

biểu thức chính quy

Chọn tài liệu trong đó các giá trị khớp với một biểu thức chính quy đã chỉ định

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

2

GHI CHÚ. bạn cũng có thể sử dụng các hoạt động regexp của Laravel. Chúng linh hoạt hơn một chút và sẽ tự động chuyển đổi chuỗi biểu thức chính quy của bạn thành đối tượng MongoDB\BSON\Regex

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

3

Và nghịch đảo

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

4

Kiểu

Chọn tài liệu nếu một trường thuộc loại được chỉ định. Để biết thêm thông tin kiểm tra. http. // tài liệu. mongodb. org/thủ công/tham chiếu/toán tử/truy vấn/loại/#op. _S_type

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

5

chế độ

Thực hiện thao tác modulo trên giá trị của một trường và chọn tài liệu có kết quả được chỉ định

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

6

Gần

GHI CHÚ. Chỉ định tọa độ theo thứ tự này.

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

27

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

7

GeoWithin

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

8

GeoIntersects

$capsule->getDatabaseManager()->extend('mongodb', function($config) { return new Jenssegers\Mongodb\Connection($config); });

9

Ở đâu

So khớp các tài liệu đáp ứng một biểu thức JavaScript. Để biết thêm thông tin kiểm tra http. // tài liệu. mongodb. org/thủ công/tham chiếu/toán tử/truy vấn/ở đâu/#op. _S_where

Chèn, cập nhật và xóa

Chèn, cập nhật và xóa các bản ghi hoạt động giống như Eloquent ban đầu

Lưu một mô hình mới

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

0

Bạn cũng có thể sử dụng phương thức tạo để lưu mô hình mới trong một dòng

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

1

Cập nhật một mô hình

Để cập nhật một mô hình, bạn có thể truy xuất nó, thay đổi một thuộc tính và sử dụng phương thức lưu

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

2

Ngoài ra còn có hỗ trợ cho các hoạt động upsert, kiểm tra https. //github. com/jenssegers/laravel-mongodb#mongodb-specific-operations

Xóa một mô hình

Để xóa một mô hình, chỉ cần gọi phương thức xóa trên ví dụ

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

3

Hoặc xóa một mô hình bằng phím của nó

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

4

Để biết thêm thông tin về thao tác mô hình, hãy kiểm tra http. // ấu trùng. com/docs/eloquent#insert-update-delete

ngày

Eloquent cho phép bạn làm việc với các đối tượng Carbon/DateTime thay vì các đối tượng MongoDate. Trong nội bộ, những ngày này sẽ được chuyển đổi thành các đối tượng MongoDate khi được lưu vào cơ sở dữ liệu. Nếu bạn muốn sử dụng chức năng này trên các trường ngày không mặc định, bạn sẽ cần chỉ định chúng theo cách thủ công như được mô tả tại đây. http. // ấu trùng. com/docs/eloquent#date-mutators

Ví dụ

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

5

Cho phép bạn thực hiện các truy vấn như

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

6

quan hệ

Quan hệ hỗ trợ là

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

Ví dụ

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

7

Và mối quan hệ nghịch đảo

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

8

Mối quan hệ thuộc vềToMany sẽ không sử dụng “bảng” trục, mà thay vào đó sẽ đẩy id sang thuộc tính related_ids. Điều này làm cho tham số thứ hai của phương thức thuộc vềToMany trở nên vô dụng. Nếu bạn muốn xác định các khóa tùy chỉnh cho mối quan hệ của mình, hãy đặt nó thành

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

28

use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}

9

Các mối quan hệ khác chưa được hỗ trợ, nhưng có thể được thêm vào trong tương lai. Đọc thêm về các mối quan hệ này trên http. // ấu trùng. com/docs/eloquent#relationships

NhúngNhiều quan hệ

Nếu bạn muốn nhúng các mô hình, thay vì tham chiếu chúng, bạn có thể sử dụng quan hệ

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

29. Mối quan hệ này tương tự như mối quan hệ

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

30, nhưng nhúng các mô hình bên trong đối tượng cha

NHỚ. các mối quan hệ này trả về các bộ sưu tập Eloquent, chúng không trả về các đối tượng trình tạo truy vấn

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

0

Bạn truy cập các mô hình được nhúng thông qua thuộc tính động

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

1

Mối quan hệ nghịch đảo có sẵn tự động, bạn không cần phải xác định mối quan hệ ngược lại này

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

2

Chèn và cập nhật các mô hình nhúng hoạt động tương tự như quan hệ

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

30

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

3

Bạn có thể cập nhật các mô hình nhúng bằng phương pháp

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

32 của chúng (có sẵn kể từ phiên bản 2. 0. 0)

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

4

Bạn có thể loại bỏ một mô hình nhúng bằng cách sử dụng phương pháp

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

33 trên mối quan hệ hoặc phương pháp

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

34 trên mô hình (có sẵn kể từ phiên bản 2. 0. 0)

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

5

Nếu bạn muốn thêm hoặc xóa một mô hình nhúng mà không cần chạm vào cơ sở dữ liệu, bạn có thể sử dụng các phương thức

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

35 và

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

36. Để cuối cùng ghi các thay đổi vào cơ sở dữ liệu, hãy lưu đối tượng cha

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

6

Giống như các mối quan hệ khác, embedsMany giả định khóa cục bộ của mối quan hệ dựa trên tên mô hình. Bạn có thể ghi đè khóa cục bộ mặc định bằng cách chuyển đối số thứ hai cho phương thức embedsMany

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

7

Mối quan hệ được nhúng sẽ trả về Bộ sưu tập các mục được nhúng thay vì trình tạo truy vấn. Kiểm tra các hoạt động có sẵn ở đây. https. // ấu trùng. com/docs/master/bộ sưu tập

Mối quan hệ EmbedsOne

Mối quan hệ embedsOne tương tự như mối quan hệ EmbedsMany, nhưng chỉ nhúng một mô hình duy nhất

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

8

Bạn truy cập các mô hình được nhúng thông qua thuộc tính động

use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }

9

Chèn và cập nhật các mô hình nhúng hoạt động tương tự như quan hệ

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

37

$books = $user->books()->sortBy('title');

0

Bạn có thể cập nhật mô hình nhúng bằng cách sử dụng phương pháp

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

32 (có sẵn kể từ phiên bản 2. 0. 0)

$books = $user->books()->sortBy('title');

1

Bạn có thể thay thế mô hình nhúng bằng một mô hình mới như thế này

$books = $user->books()->sortBy('title');

2

Quan hệ MySQL

Nếu bạn đang sử dụng thiết lập MongoDB và SQL kết hợp, bạn thật may mắn. Mô hình sẽ tự động trả về quan hệ MongoDB hoặc SQL dựa trên loại mô hình liên quan. Tất nhiên, nếu bạn muốn chức năng này hoạt động theo cả hai cách, các mô hình SQL của bạn sẽ cần sử dụng đặc điểm

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

08. Lưu ý rằng chức năng này chỉ hoạt động với các quan hệ hasOne, hasMany và thuộc về

Ví dụ Mô hình người dùng dựa trên SQL

$books = $user->books()->sortBy('title');

3

Và mô hình Tin nhắn dựa trên Mongodb

$books = $user->books()->sortBy('title');

4

biểu thức thô

Các biểu thức này sẽ được đưa trực tiếp vào truy vấn

$books = $user->books()->sortBy('title');

5

Bạn cũng có thể thực hiện các biểu thức thô trên đối tượng MongoCollection bên trong. Nếu điều này được thực hiện trên lớp mô hình, nó sẽ trả về một tập hợp các mô hình. Nếu điều này được thực thi trên trình tạo truy vấn, nó sẽ trả về phản hồi ban đầu

$books = $user->books()->sortBy('title');

6

Không bắt buộc. nếu bạn không chuyển một bao đóng cho phương thức thô, đối tượng MongoCollection bên trong sẽ có thể truy cập được

$books = $user->books()->sortBy('title');

7

Các đối tượng MongoClient và MongoDB bên trong có thể được truy cập như thế này

$books = $user->books()->sortBy('title');

8

Các hoạt động cụ thể của MongoDB

thời gian chờ con trỏ

Để ngăn các ngoại lệ MongoCursorTimeout, bạn có thể đặt thủ công giá trị thời gian chờ sẽ được áp dụng cho con trỏ

$books = $user->books()->sortBy('title');

9

Upsert

Cập nhật hoặc chèn tài liệu. Các tùy chọn bổ sung cho phương pháp cập nhật được chuyển trực tiếp đến phương pháp cập nhật gốc

'default' => env('DB_CONNECTION', 'mongodb'),

0

dự đoán

Bạn có thể áp dụng các phép chiếu cho các truy vấn của mình bằng phương pháp

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

40

'default' => env('DB_CONNECTION', 'mongodb'),

1

Phép chiếu có phân trang

'default' => env('DB_CONNECTION', 'mongodb'),

2

Thêm một mục vào một mảng

'default' => env('DB_CONNECTION', 'mongodb'),

3

Nếu bạn không muốn các mục trùng lặp, hãy đặt tham số thứ ba thành

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

41

'default' => env('DB_CONNECTION', 'mongodb'),

4

Sự lôi kéo

Xóa một mục khỏi một mảng

'default' => env('DB_CONNECTION', 'mongodb'),

5

Bỏ đặt

Xóa một hoặc nhiều trường khỏi tài liệu

'default' => env('DB_CONNECTION', 'mongodb'),

6

Bạn cũng có thể thực hiện hủy đặt trên một mô hình

'default' => env('DB_CONNECTION', 'mongodb'),

7

Bộ nhớ đệm truy vấn

Bạn có thể dễ dàng lưu trữ kết quả của truy vấn bằng phương thức ghi nhớ

'default' => env('DB_CONNECTION', 'mongodb'),

8

Từ. http. // ấu trùng. com/docs/queries#caching-queries

Ghi nhật ký truy vấn

Theo mặc định, Laravel giữ một bản ghi trong bộ nhớ của tất cả các truy vấn đã được chạy cho yêu cầu hiện tại. Tuy nhiên, trong một số trường hợp, chẳng hạn như khi chèn một số lượng lớn hàng, điều này có thể khiến ứng dụng sử dụng bộ nhớ dư thừa. Để tắt nhật ký, bạn có thể sử dụng phương pháp

$cityId = 1;//城市ID $count = UserModel::query()->raw(function ($collection) use ($cityId) { $aggregate = []; $aggregate[]['$match'] = [ 'city_id' => intval($city_id),//过滤城市 'sex' => ['$in' => [1,2]],//过滤性别 ]; $aggregate[]['$group'] = [ '_id' => '$sex',//更具性别进行分组 'avg_age' => [ '$avg' => '$age',//查询年龄平均值 ] ]; //这里还可以继续添加各种条件 return $collection->aggregate($aggregate)->toArray(); });

42

Chúng ta có thể kết nối MongoDB với laravel không?

Tôi có thể sử dụng MongoDB với Laravel không? . Yes! Trên thực tế, MongoDB là một lựa chọn tuyệt vời cho các dự án Laravel. Khi chúng ta bắt đầu phát triển Laravel bằng MongoDB, chúng ta sẽ tìm hiểu một ví dụ về cách xây dựng một ứng dụng blog.

MongoDB có tốt cho tổng hợp không?

Cũng như nhiều hệ thống cơ sở dữ liệu khác, MongoDB cho phép bạn thực hiện nhiều thao tác tổng hợp . Những điều này cho phép bạn xử lý các bản ghi dữ liệu theo nhiều cách khác nhau, chẳng hạn như nhóm dữ liệu, sắp xếp dữ liệu theo một thứ tự cụ thể hoặc sắp xếp lại tài liệu được trả về, cũng như lọc dữ liệu như một truy vấn có thể.

Làm cách nào để lấy dữ liệu từ MongoDB trong laravel?

Điều kiện tiên quyết .
Bạn sẽ cần tải xuống và cài đặt Composer. .
Bạn cũng cần tải xuống và cài đặt XAMPP và chạy nó như một dịch vụ
Bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào bạn muốn. .
Đảm bảo tải xuống php_mongodb thích hợp. .
MongoDB phải được cài đặt và cấu hình đúng cách

Làm cách nào để thêm MongoDB vào 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