Hướng dẫn crud mongodb php

Hướng dẫn crud mongodb php

Các ứng dụng web thường tập trung vào bốn hoạt động cơ bản mà chúng cần thực hiện đối với hệ thống bền vững hoặc Cơ sở dữ liệu của chúng, các hoạt động này được coi là chìa khóa khi học cách phát triển cho môi trường này, chúng tôi đề cập đến Tạo, Đọc, Cập nhật và Xóa còn được gọi là CRUD cho từ viết tắt bằng tiếng Anh.
Nhờ trình điều khiển PHP của nó, MongoDB cho phép chúng tôi thực hiện bốn thao tác này một cách rất đơn giản, tuy nhiên, là một trình quản lý cơ sở dữ liệu không liên quan, chúng tôi không thể rơi vào lỗi xử lý tất cả mọi thứ như thể chúng tôi đang sử dụng một hệ thống quan hệ như MySQL hoặc PostgreSQL .
Yêu cầu

Để làm theo hướng dẫn này, chúng tôi phải cài đặt phiên bản MongoDB trong môi trường thử nghiệm của chúng tôi, ngoài việc đã tải xuống và kích hoạt trình điều khiển PHP tương ứng, để biết thêm thông tin về cách đáp ứng các yêu cầu này, bạn có thể xem hướng dẫn sau.

MongoDB được tối ưu hóa cho CRUD

MongoDB được tạo ra để rất hiệu quả trong các giao dịch và hoạt động, theo cách này bạn có thể giải quyết các vấn đề thực tế mà không làm mất hiệu suất. CRUD không đòi hỏi nhiều sức mạnh xử lý, nhưng khi hàng ngàn yêu cầu tới Cơ sở dữ liệu của chúng tôi xảy ra trong một thời gian ngắn, đó là nơi chúng ta có thể thấy MongoDB giúp chúng ta duy trì hiệu suất như thế nào.
Bộ sưu tập và tài liệu là những thực thể rất mạnh, vì thiếu cấu trúc xác định, chúng tôi có thể lưu trữ dữ liệu chúng tôi muốn bằng cách duy trì hình ảnh sạch sẽ và có trật tự và chúng tôi có thể truy cập vào dữ liệu truy vấn đơn giản mà trong các mô hình quan hệ có thể tham khảo ý kiến ​​trung gian Nhiều bàn

Tạo hoặc chọn một bộ sưu tập

Cơ sở dữ liệu trong MongoDB được gọi là bộ sưu tập, do đó chúng tôi không thể coi chúng là Cơ sở dữ liệu truyền thống, mà là một bộ tài liệu được nhóm dưới một bộ phân biệt có tên.
Tạo bộ sưu tập

Để tạo một bộ sưu tập, chúng tôi không cần bất kỳ lệnh đặc biệt nào, chỉ cần với cùng một lệnh mà chúng tôi chọn nếu nó không tồn tại, MongoDB sẽ chịu trách nhiệm tạo một lệnh mới với tên mà chúng tôi đã chỉ định.
Sự đơn giản này làm cho công việc của chúng tôi dễ dàng hơn và cũng làm giảm số lượng mã mà chúng tôi phải đặt trong các ứng dụng của mình. Chúng ta hãy xem trong hình dưới đây một mã ví dụ mà chúng ta có thể chọn một bộ sưu tập trong MongoDB :

Hướng dẫn crud mongodb php

Ở đây chúng ta thấy cách đầu tiên chúng ta tạo đối tượng của lớp Mongo (), điều này được bao gồm khi cài đặt trình điều khiển tương ứng, sau đó chỉ đơn giản là khi sử dụng đối tượng và viết tên Cơ sở dữ liệu, nó được chọn hoặc tạo. Tại thời điểm này, chúng tôi phải cẩn thận, vì MongoDB sẽ không trả về lỗi nếu Cơ sở dữ liệu không tồn tại, nó sẽ chỉ tạo một cái mới, vì vậy bạn phải kiểm tra lại tên chúng tôi viết.
Cuối cùng, chúng ta có thể tạo một bộ sưu tập trong Cơ sở dữ liệu được gọi là địa chỉ và với điều đó chúng ta sẽ có cơ sở để thực hiện các hoạt động CRUD của mình .

Tạo một tài liệu trong một bộ sưu tập

Để có thể thực hiện các hoạt động khác của CRUD, trước tiên chúng ta phải có dữ liệu, đó là lý do tại sao điều đầu tiên chúng ta sẽ học là tạo tài liệu hoặc chèn các bản ghi, vì nó phù hợp nhất với ngôn ngữ kỹ thuật của chúng ta.
Nhờ trình điều khiển MongoDB, chúng tôi chỉ cần tạo một mảng hoặc mảng, với cấu trúc và dữ liệu cần thiết cho bản ghi mới của chúng tôi và sau đó gọi phương thức insert () của phương thức kết nối. Chúng ta không cần phải có một cấu trúc xác định hoặc theo một mẫu cho nó, nếu một tài liệu có một trường và một cái khác thì không, quá trình này không bị ảnh hưởng.
Chúng ta hãy xem trong hình ảnh sau đây mã nguồn giải thích quá trình được đề cập ở trên:

$config[ads_text5] not found

Hướng dẫn crud mongodb php

Có một phương pháp thay thế cho phương thức insert () và đó là phương thức save (), điểm khác biệt là save () nếu một định danh duy nhất được chỉ định và điều này tồn tại, bản ghi hiện tại sẽ được cập nhật với dữ liệu mới.
Trong cộng đồng nhà phát triển, họ đề xuất làm việc nhiều hơn với save () hơn là với insert () để tạo mã có thể được sử dụng lại, tuy nhiên quyết định nằm trong tay của mọi người.

Không đồng bộ và đồng bộ

Theo mặc định, phương thức chèn trong MongoDB là không đồng bộ, điều này có nghĩa là trong khi công cụ Cơ sở dữ liệu đang chèn hoặc cập nhật bản ghi PHP, nó vẫn tiếp tục chạy mà không chặn. Kết quả của hành vi này là ứng dụng chạy nhanh hơn, ngay cả khi công cụ cơ sở dữ liệu không hoạt động.
Vì hành vi này không phải lúc nào cũng hữu ích, chúng ta có thể buộc nó hành xử đồng bộ khi truyền tham số an toàn khi thực hiện thao tác, điều này sẽ khiến PHP phải chờ phản hồi của MongoDB trước khi tiếp tục thực hiện hướng dẫn. Cấu trúc của tham số an toàn như sau:

 $ bộ sưu tập-> insert ($ address, mảng ('safe' => true)); 

$config[ads_text5] not found

Khóa chính

Theo mặc định và trừ khi chúng tôi chỉ định khác, MongoDB sẽ tự động tạo các khóa chính của tài liệu dưới tên _id, tại thời điểm thực hiện chèn () một cách đồng bộ, khóa được thiết lập và được đặt trong mảng chúng tôi vừa chèn.
Vì vậy, nếu chúng ta muốn biết định danh duy nhất là gì, chúng ta chỉ nên tham khảo thuộc tính này của mảng, nếu chúng ta làm theo ví dụ trước, nó chỉ đủ để làm như sau:

 $ id = $ bộ sưu tập ['_ id']; 

Đọc tài liệu

Bây giờ chúng tôi chuyển sang hoạt động thứ hai, đó là đọc thông tin chúng tôi có trong các tài liệu hoặc cơ sở dữ liệu của chúng tôi. Ở đây chúng tôi có thể thực hiện yêu cầu bằng khóa chính trực tiếp hoặc bằng bất kỳ kết hợp thuộc tính nào khác của tài liệu của chúng tôi.
Để thực hiện tìm kiếm, chúng tôi chỉ cần sử dụng phương thức findone () và để thực hiện điều này, chúng tôi sẽ chuyển một mảng với tất cả các phần tử mà chúng tôi sẽ lọc. Chúng ta hãy xem trong hình dưới đây một truy vấn bằng khóa chính và một truy vấn khác sử dụng các thuộc tính tài liệu khác:

$config[ads_text6] not found

Hướng dẫn crud mongodb php

Nếu chúng ta chú ý ở đây, để tìm kiếm theo khóa chính, điều đầu tiên chúng ta làm là tạo một đối tượng thuộc loại MongoId và truyền cho nó giá trị của nó, đây là chìa khóa để mọi thứ hoạt động chính xác. Mặt khác, khi tư vấn cho các thuộc tính, chỉ cần đặt giá trị bên trong mảng mà không tạo đối tượng.
Theo mặc định, MongoDB sẽ trả về toàn bộ tài liệu sau khi tìm thấy kết quả khớp, vì vậy nếu chúng tôi không muốn có nhiều hơn một hoặc một vài dữ liệu từ nó, chúng tôi phải chỉ định nó trong một tham số thứ hai là một mảng các thuộc tính hoặc trường mà chúng tôi muốn, hãy xem đoạn mã sau đây để biết cách thực hiện:

 $ result = $ sưu tập-> findone (mảng ('_id' => $ id), mảng ('name', 'họ')); 

Khi đặt mã trước đó, biến kết quả sẽ có một mảng chỉ chứa các thuộc tính tên và họ của tài liệu phù hợp với tiêu chí tìm kiếm.

$config[ads_text5] not found

Cập nhật một tài liệu

Bây giờ chúng ta chuyển sang thao tác thứ ba, đây là cập nhật một tài liệu đã được tạo trong bộ sưu tập của chúng ta, ở đây chúng ta phải cẩn thận, vì nếu chúng ta không đặt đúng mẫu, chúng ta có thể ghi đè lên tài liệu gốc thay vì cập nhật hoặc thêm thuộc tính.
Để tránh nhầm lẫn, nên sử dụng $ set, một toán tử thông báo cho MongoDB rằng nếu tham số tồn tại, nó sẽ được cập nhật với giá trị được gửi và nếu nó không tồn tại thì nó sẽ được tạo. Điều này cho phép chúng tôi tránh các lỗi trong ứng dụng của mình và tốt hơn là cho phép chúng tôi cung cấp cho ứng dụng của mình một chức năng mong muốn. Hãy xem cách nó hoạt động:

Hướng dẫn crud mongodb php

$config[ads_text6] not found
Sau đó, chúng tôi đã nhận ra làm thế nào chúng ta có thể thay đổi giá trị của tài sản thành phố, tuy nhiên nếu trong sổ đăng ký nó không tồn tại, nó sẽ được tạo ra mà không làm thay đổi những gì đã tồn tại ở đó.
Có một điều đặc biệt mà chúng ta có thể làm trong MongoDB và không thể thực hiện được trong một công cụ quan hệ và đó là khả năng thêm các mảng trong tài liệu của chúng ta, với điều này chúng ta có thể thêm danh sách các giá trị trong một thuộc tính để chúng ta có thể tạo tài liệu mỗi lần phức tạp hơn và đầy đủ hơn cho nhu cầu của chúng tôi, tất cả mà không phải ảnh hưởng đến cấu trúc chung của các tài liệu khác cùng tồn tại trong cùng một bộ sưu tập.

Xóa tài liệu

Đây là thao tác cuối cùng, việc xóa rất đơn giản, gần như nhiều hơn hoặc nhiều hơn là thêm hoặc cập nhật, chúng tôi chỉ cần tìm tiêu chí xóa hoặc bộ lọc, tải nó vào một mảng và thực hiện phương thức remove ().
Điều duy nhất chúng ta phải ghi nhớ là MongoDB sẽ xóa tất cả các tài liệu phù hợp với tiêu chí đó, đó là lý do tại sao nếu chúng ta muốn xóa chỉ một thì chúng ta phải sử dụng thuộc tính justOne và đặt nó vào True . Chúng ta hãy xem bên dưới mã để xóa một tài liệu:

Hướng dẫn crud mongodb php

Với điều này, chúng tôi hoàn thành hướng dẫn này, chúng tôi đã thấy một cách cơ bản nhưng đầy đủ chức năng làm thế nào chúng tôi có thể bao gồm một CRUD về một cấu trúc không liên quan như MongoDB từ PHP . Nếu chúng ta quản lý thành thạo điều này, chúng ta sẽ tạo ra các ứng dụng hiệu suất cao và rất linh hoạt sẽ giúp chúng ta gây ấn tượng với người dùng.