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. xVà thêm nhà cung cấp dịch vụ vào
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[]; }];
Jenssegers\Mongodb\MongodbServiceProvider::class,
Để sử dụng với Lumen, hãy thêm nhà cung cấp dịch vụ vào
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
$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[]; }];
$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
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
$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[]; }];
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
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
$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[]; }];
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
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
$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[]; }];
$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
10
$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[]; }];
'default' => env['DB_CONNECTION', 'mongodb'],
Và thêm một kết nối mongodb mới
0
$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[]; }];
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
1
$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[]; }];
Ngoài ra, bạn có thể sử dụng chuỗi kết nối MongoDB
2
$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[]; }];
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
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
$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[]; }];
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
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
$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[]; }];
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
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
$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[]; }];
Điều này sẽ cho phép bạn sử dụng bí danh đã đăng ký như
7
$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[]; }];
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
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
$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[]; }];
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
9
$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[]; }];
Đọ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
0Cá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.
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
$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[]; }];
Để thêm chỉ mục
18
$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[]; }];
composer require jenssegers/mongodb
1Để thêm một chỉ mục
19
$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[]; }];
composer require jenssegers/mongodb
2tiệ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
3Nhà 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
22
$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[]; }];
composer require jenssegers/mongodb
4Nế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
22
$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[]; }];
composer require jenssegers/mongodb
5Và thêm nhà cung cấp dịch vụ vào
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[]; }];
composer require jenssegers/mongodb
6lí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
7Truy xuất bản ghi bằng khóa chính
composer require jenssegers/mongodb
8ở đâu
composer require jenssegers/mongodb
9Hoặc Tuyên bố
0
Jenssegers\Mongodb\MongodbServiceProvider::class,
Và báo cáo
1
Jenssegers\Mongodb\MongodbServiceProvider::class,
Sử dụng Where In với một mảng
2
Jenssegers\Mongodb\MongodbServiceProvider::class,
Khi sử dụng
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 đó
$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[]; }];
Sử dụng ở đâu giữa
3
Jenssegers\Mongodb\MongodbServiceProvider::class,
Trường hợp null
4
Jenssegers\Mongodb\MongodbServiceProvider::class,
Đặt bởi
5
Jenssegers\Mongodb\MongodbServiceProvider::class,
Bù trừ & Giới hạn
6
Jenssegers\Mongodb\MongodbServiceProvider::class,
Riêng biệt
Distinct yêu cầu một trường để trả về các giá trị riêng biệt
7
Jenssegers\Mongodb\MongodbServiceProvider::class,
Khác biệt có thể được kết hợp với nơi
8
Jenssegers\Mongodb\MongodbServiceProvider::class,
Nâng cao
9
Jenssegers\Mongodb\MongodbServiceProvider::class,
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
0
$app->register[Jenssegers\Mongodb\MongodbServiceProvider::class]; $app->withEloquent[];
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
1
$app->register[Jenssegers\Mongodb\MongodbServiceProvider::class]; $app->withEloquent[];
Aggregations có thể được kết hợp với where
2
$app->register[Jenssegers\Mongodb\MongodbServiceProvider::class]; $app->withEloquent[];
Tập hợp cũng có thể được sử dụng trên tài liệu con
3
$app->register[Jenssegers\Mongodb\MongodbServiceProvider::class]; $app->withEloquent[];
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
4
$app->register[Jenssegers\Mongodb\MongodbServiceProvider::class]; $app->withEloquent[];
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
5
$app->register[Jenssegers\Mongodb\MongodbServiceProvider::class]; $app->withEloquent[];
Số lượng đối tượng cập nhật được trả về
6
$app->register[Jenssegers\Mongodb\MongodbServiceProvider::class]; $app->withEloquent[];
Bạn cũng có thể chỉ định các cột bổ sung để cập nhật
7
$app->register[Jenssegers\Mongodb\MongodbServiceProvider::class]; $app->withEloquent[];
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
8
$app->register[Jenssegers\Mongodb\MongodbServiceProvider::class]; $app->withEloquent[];
Để 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
9
$app->register[Jenssegers\Mongodb\MongodbServiceProvider::class]; $app->withEloquent[];
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
0
$capsule->getDatabaseManager[]->extend['mongodb', function[$config] { return new Jenssegers\Mongodb\Connection[$config]; }];
Kích cỡ
Chọn tài liệu nếu trường mảng có kích thước được chỉ định
1
$capsule->getDatabaseManager[]->extend['mongodb', function[$config] { return new Jenssegers\Mongodb\Connection[$config]; }];
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
2
$capsule->getDatabaseManager[]->extend['mongodb', function[$config] { return new Jenssegers\Mongodb\Connection[$config]; }];
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
3
$capsule->getDatabaseManager[]->extend['mongodb', function[$config] { return new Jenssegers\Mongodb\Connection[$config]; }];
Và nghịch đảo
4
$capsule->getDatabaseManager[]->extend['mongodb', function[$config] { return new Jenssegers\Mongodb\Connection[$config]; }];
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
5
$capsule->getDatabaseManager[]->extend['mongodb', function[$config] { return new Jenssegers\Mongodb\Connection[$config]; }];
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
6
$capsule->getDatabaseManager[]->extend['mongodb', function[$config] { return new Jenssegers\Mongodb\Connection[$config]; }];
Gần
GHI CHÚ. Chỉ định tọa độ theo thứ tự này.
27
$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
$capsule->getDatabaseManager[]->extend['mongodb', function[$config] { return new Jenssegers\Mongodb\Connection[$config]; }];
GeoWithin
8
$capsule->getDatabaseManager[]->extend['mongodb', function[$config] { return new Jenssegers\Mongodb\Connection[$config]; }];
GeoIntersects
9
$capsule->getDatabaseManager[]->extend['mongodb', function[$config] { return new Jenssegers\Mongodb\Connection[$config]; }];
Ở đâ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
0
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
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
1
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
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
2
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
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ụ
3
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
Hoặc xóa một mô hình bằng phím của nó
4
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
Để 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ụ
5
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
Cho phép bạn thực hiện các truy vấn như
6
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
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ụ
7
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
Và mối quan hệ nghịch đảo
8
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
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
28
$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
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
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ệ
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
$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[]; }];
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
0
use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }
Bạn truy cập các mô hình được nhúng thông qua thuộc tính động
1
use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }
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
2
use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }
Chèn và cập nhật các mô hình nhúng hoạt động tương tự như quan hệ
30
$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[]; }];
3
use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }
Bạn có thể cập nhật các mô hình nhúng bằng phương pháp
32 của chúng [có sẵn kể từ phiên bản 2. 0. 0]
$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
use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }
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
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]
$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
use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }
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
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
$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
use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }
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
7
use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }
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
8
use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }
Bạn truy cập các mô hình được nhúng thông qua thuộc tính động
9
use Jenssegers\Mongodb\Eloquent\HybridRelations; class User extends Eloquent { use HybridRelations; protected $connection = 'mysql'; }
Chèn và cập nhật các mô hình nhúng hoạt động tương tự như quan hệ
37
$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
$books = $user->books[]->sortBy['title'];
Bạn có thể cập nhật mô hình nhúng bằng cách sử dụng phương pháp
32 [có sẵn kể từ phiên bản 2. 0. 0]
$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
$books = $user->books[]->sortBy['title'];
Bạn có thể thay thế mô hình nhúng bằng một mô hình mới như thế này
2
$books = $user->books[]->sortBy['title'];
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
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ề
$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[]; }];
Ví dụ Mô hình người dùng dựa trên SQL
3
$books = $user->books[]->sortBy['title'];
Và mô hình Tin nhắn dựa trên Mongodb
4
$books = $user->books[]->sortBy['title'];
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
5
$books = $user->books[]->sortBy['title'];
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
6
$books = $user->books[]->sortBy['title'];
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
7
$books = $user->books[]->sortBy['title'];
Các đối tượng MongoClient và MongoDB bên trong có thể được truy cập như thế này
8
$books = $user->books[]->sortBy['title'];
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ỏ
9
$books = $user->books[]->sortBy['title'];
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
0
'default' => env['DB_CONNECTION', 'mongodb'],
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
40
$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
'default' => env['DB_CONNECTION', 'mongodb'],
Phép chiếu có phân trang
2
'default' => env['DB_CONNECTION', 'mongodb'],
Xô
Thêm một mục vào một mảng
3
'default' => env['DB_CONNECTION', 'mongodb'],
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
41
$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
'default' => env['DB_CONNECTION', 'mongodb'],
Sự lôi kéo
Xóa một mục khỏi một mảng
5
'default' => env['DB_CONNECTION', 'mongodb'],
Bỏ đặt
Xóa một hoặc nhiều trường khỏi tài liệu
6
'default' => env['DB_CONNECTION', 'mongodb'],
Bạn cũng có thể thực hiện hủy đặt trên một mô hình
7
'default' => env['DB_CONNECTION', 'mongodb'],
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ớ
8
'default' => env['DB_CONNECTION', 'mongodb'],
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
42
$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[]; }];