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 Show
Mục lụcCà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
Phiên bản Laravel Khả năng tương thíchLaravelPackage4. 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
Để 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 02 ở bên dưới nơi bạn đã đăng ký 03
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
nâng cấpNâng cấp từ phiên bản 2 lên 3Trong 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 05 ở đầu tệp mô hình hoặc bí danh đã đăng ký của bạn
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ỏ 07. Thay vào đó hãy sử dụng đặc điểm 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
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
Cấu hìnhThay đổi tên kết nối cơ sở dữ liệu mặc định của bạn trong 10
Và thêm một kết nối mongodb mới 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 1 Ngoài ra, bạn có thể sử dụng chuỗi kết nối MongoDB 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ồnGó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
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 12 trên mô hình của bạn 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 13 để ghi đè quy ước này. Tương tự như vậy, bạn có thể xác định thuộc tính 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 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í danhBạ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 6 Điều này sẽ cho phép bạn sử dụng bí danh đã đăng ký như 7 Trình tạo truy vấnTrì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 17 cũng như một số toán tử/hoạt động cụ thể của mongodb bổ sung 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 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 0Các hoạt động được hỗ trợ là
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à 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 18 1Để thêm một chỉ mục 19 2tiện ích mở rộngxác thựcNế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 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 đợiNế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 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 5Và thêm nhà cung cấp dịch vụ vào 00 6lính gácNế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ênTrì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ảnLấy tất cả các mô hình 7Truy xuất bản ghi bằng khóa chính 8ở đâu 9Hoặc Tuyên bố 0 Và báo cáo 1 Sử dụng Where In với một mảng 2 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 26 để loại bỏ những tài liệu đó Sử dụng ở đâu giữa 3 Trường hợp null 4 Đặt bởi 5 Bù trừ & Giới hạn 6 Riêng biệt Distinct yêu cầu một trường để trả về các giá trị riêng biệt 7 Khác biệt có thể được kết hợp với nơi 8 Nâng cao 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 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 1 Aggregations có thể được kết hợp với where 2 Tập hợp cũng có thể được sử dụng trên tài liệu con 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 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 5 Số lượng đối tượng cập nhật được trả về 6 Bạn cũng có thể chỉ định các cột bổ sung để cập nhật 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 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 MongoDBtồn tại So khớp các tài liệu có trường được chỉ định 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 0 Kích cỡ Chọn tài liệu nếu trường mảng có kích thước được chỉ định 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 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 3 Và nghịch đảo 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 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 6 Gần GHI CHÚ. Chỉ định tọa độ theo thứ tự này. 27 7 GeoWithin 8 GeoIntersects 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óaChè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 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 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 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 Hoặc xóa một mô hình bằng phím của nó 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àyEloquent 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 Cho phép bạn thực hiện các truy vấn như 6 quan hệQuan hệ hỗ trợ là
Ví dụ 7 Và mối quan hệ nghịch đảo 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 28 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ệ 29. Mối quan hệ này tương tự như mối quan hệ 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 0 Bạn truy cập các mô hình được nhúng thông qua thuộc tính động 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 2 Chèn và cập nhật các mô hình nhúng hoạt động tương tự như quan hệ 30 3 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) 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 33 trên mối quan hệ hoặc phương pháp 34 trên mô hình (có sẵn kể từ phiên bản 2. 0. 0) 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 35 và 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 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 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ệ EmbedsOneMố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 Bạn truy cập các mô hình được nhúng thông qua thuộc tính động 9 Chèn và cập nhật các mô hình nhúng hoạt động tương tự như quan hệ 37 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 32 (có sẵn kể từ phiên bản 2. 0. 0) 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 2 Quan hệ MySQLNế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ề Ví dụ Mô hình người dùng dựa trên SQL 3 Và mô hình Tin nhắn dựa trên Mongodb 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 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 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 7 Các đối tượng MongoClient và MongoDB bên trong có thể được truy cập như thế này 8 Các hoạt động cụ thể của MongoDBthờ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 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 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 1 Phép chiếu có phân trang 2 Xô Thêm một mục vào một mảng 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 41 4 Sự lôi kéo Xóa một mục khỏi một mảng 5 Bỏ đặt Xóa một hoặc nhiều trường khỏi tài liệu 6 Bạn cũng có thể thực hiện hủy đặt trên một mô hình 7 Bộ nhớ đệm truy vấnBạ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 Từ. http. // ấu trùng. com/docs/queries#caching-queries Ghi nhật ký truy vấnTheo 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 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 |