Hướng dẫn dùng mongo trong PHP

Bài viết được sự cho phép của smartjob.vn

MongoDB hỗ trợ rất nhiều Driver cho các ngôn ngữ lập trình khác nhau. Trong bài viết này, SmartJob trình bày về việc kết nối, truy vấn từ PHP.

Máy tính sử dụng: Windows 10, 64 bit, sử dụng bộ tích hợp XAMPP.
Cài đặt MongoDB sử dụng MEAN stack (bạn xem các bài viết trước đã hướng dẫn cách cài đặt).

Hướng dẫn dùng mongo trong PHP

Việc làm php và việc làm mongoBD hấp dẫn

Bước 1. Tải về tập tin mở rộng dll tại đường link:

Bước 2. Giải nén. Copy file php_mongodb.dll  vào thư mục ext, ví dụ trên máy của tác giả là: C:\xampp\php\ext

Bước 3. Tìm file php.ini , ví dụ, trên máy tác giả là: C:\xampp\php\php.ini .

Chèn vào cuối tập tin này:

extension=php_mongodb.dll

Bước 4. Giả sử có thư mục: C:\xampp\htdocs\vy\mongophp
Sử dụng cmd:

Gõ lệnh:

composer require "mongodb/mongodb=^1.0.0"

để tải thư viện bằng Composer về.

Composer tự động tải về và thư mục có thêm 1 thư mục và 2 tập tin mới:

Tạo 3 tập tin info.phpadd.phpfind.php để kiểm tra các tính năng mà thư viện MongoDB PHP cung cấp:

Tập tin info.php

Tập tin add.php

Tập tin find.php

Bước 5. Khởi chạy máy chủ PHP dựng sẵn

php -S localhost:1111 -t C:\xampp\htdocs\vy\mongo-php

Bước 6. Truy cập

http://localhost:1111/info.php

xem kết quả để thấy rằng extension MongoDB đã được cài đặt thành công trong PHP.

Bước 7. Thêm dữ liệu bằng cách truy cập đường dẫn

Bước 8. Tìm kiếm dữ liệu, bằng cách truy cập đường dẫn

Để thực hiện nhiều thao tác đa dạng khác (đọc, ghi, sửa, xóa), bạn hãy xem thêm tài liệu như bên dưới.

TÀI LIỆU THAM KHẢO

1. http://php.net/manual/en/mongodb.installation.windows.php
2. http://mongodb.github.io/mongo-php-library/api/class-MongoDB.Collection.html
3. https://gist.github.com/gatesvp/977676

Tải mã nguồn từ server SmartJob: mongo-php
hoặc tải về/fork từ server Github: https://github.com/SmartJobVN/mongo-php

Bài viết gốc được đăng tải tại smartjob.vn

Có thể bạn quan tâm:

  • Node.js và Mongodb hướng dẫn kết nối
  • MongoDB là gì? Định nghĩa đầy đủ và chi tiết nhất về MongoDB
  • Lập trình viên MongoDB các vị trí

Xem thêm tuyển dụng nhân viên it hấp dẫn trên TopDev

PHP là viết tắt của chữ "Hypertext Preprocessor", đây là một ngôn ngữ lập trình được sử dụng để viết ở phía máy chủ (server side). Và PHP là một open source, nên chính vì thế nó có tính cộng đồng của nó cao và đồng thời cũng sẽ có rất nhiều các framawork, CMS hỗ trợ như Laravel, Wordpress.

- MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở thuộc học NoSQL. Nó được thiết kế theo kiểu hướng đối tượng, các bảng trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ trên bảng không cần tuân theo một cấu trúc nhất định nào cả (điều này rất thích hợp để làm big data).

Series này sẽ hướng dẫn mọi người cách Kết nối PHP đến MongoDB. Và đọc, ghi, sửa, xóa (CRUD) dữ liệu trên MongoDB sử dụng PHP.

Phần trước mình đã hướng dẫn mọi người cài đặt mongoDB driver vào trong PHP rồi. Bài này chúng ta sẽ thực hiện kết nối PHP đến mongoDB
Lưu ý: Các bạn phải cài đặt mongodb trên máy sẵn rồi mới thực thi được (xem hướng dẫn) và mặc định thì mình coi như là các bạn đang start mongoDB rồi nhé!

Nội dung chính

  • 1,  Class MongoDB\Client.
  • 2, Thực thi kết nối.
  • 3, Lời kết.
  • Cài đặt Ubuntu
  • Cài đặt Windows
  • Cài đặt trình điều khiển cho PHP
  • Cài đặt trình điều khiển trên Linux
  • Nguyên tắc của MongoDB
  • Kết nối PHP với MongoDB
  • Kiểm tra kết nối
  • Đọc dữ liệu thu thập
  • Quản trị web

1,  Class MongoDB\Client.

Để thực hiện kết nối  PHP đến MongoDB chúng ta sẽ sử dụng đến class Client nằm trong gói MongoDB.

Class này chứa các phương thức sau:

  • __construct()
  • __get()
  • dropdatabase()
  • getManager()
  • getReadConcern()
  • getReadPreference()
  • getTypeMap()
  • getWriteConcern()
  • listDatabases()
  • selectCollection()
  • selectDatabase()

2, Thực thi kết nối.

Để thực thi kết nối đến MongoDB chúng ta chỉ việc khởi tạo class Client với cú pháp như sau:

Trong đó:

  • $uri là đường dẫn đến mongodb bạn cần kết nối. Mặc định thì $uri = 'mongodb://127.0.0.1/'
  • $option là mảng chứa các thông số cấu hình tùy chọn thêm cho $uri, các thông số này sẽ ghi đè các thông số mặc định trong $uri.
  • $driverOption là mảng chứa các thông số cấu hình driver thêm cho $uri như SSL,...

 VD: Ở đây mình sẽ thực hiện kết nối PHP đến mongodb trên máy mình.

Mongodb trên máy mình chạy port 27017.

3, Lời kết.

Phần này chúng ta tạm dừng ở việc kết nối PHP với MongoDB thôi, phần tiếp theo chúng ta sẽ tiến hành truy xuất đến database trong MongoDB.

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Bài Viết Mới

Cơ sở dữ liệu NoQuery đã có liên quan lớn trong những năm gần đây. Thiết kế có thể mở rộng của nó và khả năng quản lý các cấu trúc theo cách không liên quan làm cho chúng trở thành một sự thay thế cho các hình thức phát triển mới đang sản xuất trên thế giới.
Đó là lý do tại sao chúng ta phải ghi nhớ rằng thực tế là chúng ta sẽ sớm phải biết cách xử lý chúng vì bây giờ chúng ta biết cách xử lý Cơ sở dữ liệu truyền thống, vì điều này chúng ta sẽ cần kết nối với chúng thông qua các ngôn ngữ truyền thống, như PHP được biết đến rộng rãi.
Một trong những công cụ cơ sở dữ liệu NoQuery phổ biến nhất là mongoDB, do cài đặt dễ dàng và cộng đồng đang phát triển cho phép chúng tôi tìm hiểu rất nhiều trong một thời gian ngắn với các tìm kiếm Internet đơn giản.
Cài đặt MongoDB

Điều đầu tiên chúng ta phải làm là cài đặt máy chủ mongoDB, với điều này, chúng ta sẽ có được công cụ Cơ sở dữ liệu để có thể quản lý cơ sở dữ liệu NoQuery mới của mình. Là một công cụ mới đã được thiết kế để nó có thể được cài đặt trên một số nền tảng. Chúng tôi sẽ giải thích cách thực hiện trên hai trong số các hệ điều hành quan trọng nhất của WindowsLinux hiện nay trong phiên bản Ubuntu .

Cài đặt Ubuntu

Để cài đặt mongoDB trong Ubuntu, chúng ta phải thực hiện một vài bước đơn giản để kích hoạt gói, sau khi thực hiện xong các bước này, chúng ta có thể sử dụng cài đặt apt-get bình thường, hãy xem.
1 - Trước tiên, chúng ta phải nhập khóa chung, vì điều này chúng ta sẽ mở một bàn điều khiển hoặc thiết bị đầu cuối mới và viết lệnh sau:

 sudo apt-key adv --keyserver hkp: / /keyserver.ubfox.com:80 --recv 7F0CEB10 

2 - Sau đó, chúng ta phải thêm một tệp danh sách cho mongoDB, vì điều này chúng ta phải làm như sau:

 echo 'deb http: /doads-distro.mongodb.org/repo/ubfox-upstart dist 10gen' | sudo tee /etc/apt/source.list.d/mongodb.list 

3 - Bây giờ chúng tôi cuối cùng có thể cài đặt dịch vụ, vì điều này trước tiên chúng tôi sẽ cập nhật các phụ thuộc của chúng tôi và sau đó cài đặt gói:

 sudo apt-get cập nhật 

Khi mọi thứ đã được cập nhật, chúng tôi sẽ đặt lệnh để thực hiện cài đặt và cùng với đó, chúng tôi sẽ có dịch vụ mongoDB có sẵn trong hệ thống của chúng tôi:

 sudo apt-get install -y mongodb-org 

Cài đặt Windows

Việc cài đặt trong Windows đơn giản hơn, chúng ta chỉ cần đảm bảo rằng chúng ta có Windows Vista hoặc một cái gì đó mới hơn, vì không may là phiên bản mới nhất của mongoDB không tương thích với Windows XP .
Sau đó, chúng tôi truy cập trang web mongoDB chính thức và chọn phiên bản phù hợp nhất với cấu hình hệ điều hành của chúng tôi:

Khi tệp thực thi được tải xuống, chúng tôi sẽ cài đặt nó và sau đó chúng tôi sẽ thực hiện các bước sau để dịch vụ có thể bắt đầu chính xác:
1 - Chúng ta phải tạo một thư mục dữ liệu trong đó mongoDB có thể lưu trữ các bộ sưu tập tài liệu của cơ sở dữ liệu của chúng tôi, với điều này từ bảng điều khiển lệnh, với quyền của quản trị viên, chúng tôi sẽ được đặt trong thư mục thích hợp và tạo thư mục mới. Đối với điều này, chúng tôi sử dụng như sau:

 md \ data \ db 

2 - Sau khi tạo thư mục, chúng tôi phải khởi động dịch vụ mongoDB, chúng tôi thực hiện việc này khi chạy mongod.exe, đường dẫn phải tương tự như sau, tùy thuộc vào nơi chúng tôi đã thực hiện cài đặt và phiên bản mongoDB mà chúng tôi có:

 C: \ Tệp chương trình \ MongoDB 2.6 Tiêu chuẩn \ bin \ mongod.exe 

Hãy xem hình ảnh sau đây nơi chúng tôi nhận ra rằng mọi thứ đều ổn khi bảng điều khiển cho chúng tôi biết rằng mongoDB đang chờ kết nối mới:

Cài đặt trình điều khiển cho PHP

Vì chúng tôi đã cài đặt thành công dịch vụ mongoDB của mình, bây giờ chúng tôi phải cho PHP biết cách giao tiếp với nó, vì vậy, chúng tôi phải tải xuống trình điều khiển thích hợp và kích hoạt nó trong php.ini như một phần mở rộng.
Đối với Windows, chúng tôi có thể tải xuống trình điều khiển từ kho lưu trữ mongoDB chính thức theo đường dẫn sau: s3.amazonaws.com/drivers.mongodb.org/php/index.html nơi chúng tôi sẽ có một số tùy chọn, chúng tôi phải chọn một số tùy chọn gần đây và ổn định nhất.
Xác định phần mở rộng

Khi tệp được tải xuống, chúng tôi giải nén và tìm kiếm tiện ích mở rộng phù hợp với phiên bản PHP của chúng tôi, trong trường hợp của tôi khi tôi đang chạy phiên bản 5.4, tôi sẽ sử dụng php_mongo-1.6.0RC2-5.4-vc9.dll và đổi tên thành php_mongo.dll.
Sau đó, chúng tôi phải di chuyển tệp vào thư mục các tiện ích mở rộng của chúng tôi sẽ là:

 C: \ wamp \ bin \ php \ php5.4.12 \ ext 

Với tiện ích mở rộng được thêm vào, chúng tôi chỉ cần thêm dòng sau vào php.ini : extension = php_mongo.dll
Cuối cùng, chúng tôi khởi động lại máy chủ Apache của mình và thực thi phpinfo () để xác minh rằng tiện ích mở rộng đã được bật, chúng tôi tìm kiếm bằng CTRL + F cho từ mongo và chúng tôi sẽ thấy thông tin của tiện ích mở rộng:

Với xác minh này, chúng tôi sẽ sẵn sàng làm việc với PHPmongoDB trong môi trường Windows của chúng tôi.

Cài đặt trình điều khiển trên Linux

Đối với Linux, cần thêm một vài bước nữa, trước tiên chúng ta phải cài đặt Pear, vì điều này chúng ta sẽ thực hiện các thao tác sau trong bảng điều khiển hoặc thiết bị đầu cuối:

 sudo apt-get cài đặt php5-dev php5-cli php-lê 

Sau đó, chúng tôi tiến hành cài đặt trình điều khiển, vì điều này từ bàn điều khiển hoặc thiết bị đầu cuối, chúng tôi sẽ thực hiện các hướng dẫn sau:

 sudo pecl cài đặt mongo 

Cuối cùng, chúng ta phải mở php.ini và kích hoạt tiện ích mở rộng:

 mở rộng = mongo.so 

Với điều đó, chúng tôi có thể khởi động lại máy chủ Apache của mình và sẵn sàng bắt đầu làm việc trên Linux .

$config[ads_text5] not found

Nguyên tắc của MongoDB

Chúng tôi đã tạo đủ cấu hình ở cấp độ kỹ thuật để mongoDBPHP có thể giao tiếp, tuy nhiên chúng tôi phải xem một chút cách thức công cụ cơ sở dữ liệu này hoạt động để có thể biết được những gì chúng tôi có thể đạt được với NoQuery .
Bộ sưu tập và tài liệu

Trước hết chúng ta nên biết rằng không có bảng nào ngoài các bộ sưu tập và bạn không lưu trữ hồ sơ mà là tài liệu, điều này cho chúng ta sự tự do rằng không cần thiết phải tuân theo một cấu trúc cứng nhắc và mỗi tài liệu có thể chứa tất cả dữ liệu bạn cần.
Một ví dụ kinh điển là các tác giả và sách của họ, trong Cơ sở dữ liệu quan hệ, chúng ta phải tạo một bảng tác giả, sau đó chúng ta phải tạo một bảng sách và sau này chúng ta phải có một trường trong đó chúng ta liên kết id hoặc định danh duy nhất của tác giả với mỗi cuốn sách, không có gì từ thế giới khác và khá chức năng.
MongoDB hoạt động như thế nào?

$config[ads_text5] not found

Trong mongoDB, chúng tôi chỉ cần tạo một bộ sưu tập có tên tác giả và mỗi tài liệu sẽ là một tác giả, mongoDB chịu trách nhiệm tự động tạo một định danh duy nhất, nhưng chúng tôi có thể thêm một thuộc tính giúp chúng tôi xác định từng tác giả theo cách riêng của mình, sau đó chúng tôi có thể tạo một tài liệu mới trong mỗi tác giả tài sản được gọi là sách và ở đó chúng tôi sẽ lưu trữ tất cả các tiêu đề của chúng, vì vậy nếu chúng tôi muốn một tác giả không có sách, chúng tôi chỉ cần tham khảo tài liệu không có sách tài sản trong bộ sưu tập.
Điều này cho thấy rằng không có mối quan hệ nào được thiết lập cho các tác giả và sách, chỉ đơn giản là một tài liệu có thể chứa phần đó hay không, thực tế nó linh hoạt đến mức chúng ta có thể tạo ra một tác giả có chứa một tài sản gọi là sách cho trẻ em và các tác giả khác thì không bằng cách này, chúng ta sẽ không phải tạo các mối quan hệ hoặc bảng mới, chỉ đơn giản là tài liệu thu thập sẽ có nó.

$config[ads_text6] not found

Kết nối PHP với MongoDB

Đã bao gồm các cơ sở phù hợp của mọi thứ chúng ta cần biết trước khi có thể kết nối với PHP, hãy xem lại những gì chúng ta cần:

  • Một máy chủ để chạy PHP, ví dụ Apache .
  • Dịch vụ mongoDB được cài đặt và hoạt động chờ kết nối.
  • Đã cài đặt trình điều khiển PHP cho mongoDB .
  • Một trình soạn thảo văn bản đơn giản và khả năng thực thi mã mà chúng ta viết trên máy chủ PHP của chúng tôi.

Kiểm tra kết nối

Điều đầu tiên chúng ta phải làm là tạo một đối tượng của lớp MongoClient, đây không phải là vấn đề nếu chúng ta đã cài đặt trình điều khiển chính xác, sau đó với đối tượng đó, chúng ta thiết lập tên của Cơ sở dữ liệu của mình, trong trường hợp này chúng ta đặt một thư viện, sau đó chúng ta thiết lập tên của bộ sưu tập và bây giờ chúng ta có thể chèn dữ liệu, hãy xem mã nguồn của ví dụ này:

 thư viện; $ sưu tập = $ db-> tác giả; $ tác giả = mảng ('autorid' => 1, 'name' => 'Dan Brown'); $ bộ sưu tập-> chèn (tác giả $); $ tác giả = mảng ('autorid' => 2, 'name' => 'Chuck Palahniuk'); $ bộ sưu tập-> chèn (tác giả $); $ tác giả = mảng ('autorid' => 3, 'name' => 'Max Brooks'); $ sưu tập-> lưu ($ tác giả); ?> 

Chúng tôi thấy cách mỗi bản ghi thực sự là tài liệu của bộ sưu tập của chúng tôi, chúng tôi xây dựng chúng dưới dạng một mảng trong chương trình của chúng tôi, sau đó chúng tôi chỉ cần chuyển mảng đó cho đối tượng bộ sưu tập và thực hiện phương thức chèn, điều này dễ dàng cho chúng tôi cách chèn dữ liệu vào bộ sưu tập trong mongoDB, hãy xem hình ảnh sau đây như thế nào sau khi thực thi mã của chúng tôi trên máy chủ của chúng tôi, cơ sở dữ liệu được gọi là thư viện của chúng tôi được tạo :

$config[ads_text5] not found

Đọc dữ liệu thu thập

Vì chúng tôi đã thấy cách chúng tôi dễ dàng chèn dữ liệu, bây giờ chúng tôi sẽ thực hiện một truy vấn nhỏ, bằng cách này, chúng tôi sẽ trình bày cách trích xuất dữ liệu của tài liệu.
Để làm điều này, chúng ta sẽ thực hiện lại các kết nối cần thiết như trong ví dụ trước, nhưng bây giờ chúng ta sẽ sử dụng phương thức findOne () với đối tượng bộ sưu tập, bằng cách này, chúng ta có thể tham khảo một số thuộc tính của tài liệu trong bộ sưu tập, chẳng hạn như tác giả chúng tôi đã tạo, hãy xem mã:

 thư viện; $ sưu tập = $ db-> tác giả; $ tác giả = mảng ('autorid' => 1, 'name' => 'Dan Brown'); $ bộ sưu tập-> chèn (tác giả $); $ tác giả = mảng ('autorid' => 2, 'name' => 'Chuck Palahniuk'); $ bộ sưu tập-> chèn (tác giả $); $ tác giả = mảng ('autorid' => 3, 'name' => 'Max Brooks'); $ sưu tập-> lưu ($ tác giả); $ Documents = $ sưu tập-> findOne (mảng ('autorid' => 2)); echo "Dữ liệu truy vấn: 
"; echo" Khóa chính Mongo: {$ Documents ['_ id']}
"; echo" Tên tác giả: {$ Documents ['name']} ";?>

Cuối cùng, chúng ta có thể duyệt qua các kết quả như thể đó là một mảng và chỉ đơn giản chỉ ra chỉ mục của từng thuộc tính mà chúng ta cần in, ngoài ra chúng ta đã đưa vào ví dụ thuộc tính _id để chúng ta có thể hình dung cách mongoDB tạo ra khóa chính hoặc trường định danh duy nhất. Hãy xem kết quả trong trình duyệt của chúng tôi khi chúng tôi thực thi mã của mình:

$config[ads_text6] not found

Quản trị web

Có một số công cụ mà chúng ta có thể sử dụng để quản trị thông qua web cơ sở dữ liệu của chúng tôi trong mongoDB .
Một trong số đó là Genghis, vì điều này, chúng tôi chỉ cần tải xuống hoặc sao chép dự án trong thư mục www hoặc tương đương của chúng tôi, nơi chúng tôi có thể nâng một trang trong localhost và chúng tôi có thể thấy cài đặt mongoDB và dữ liệu của nó, để hoàn tất hãy xem công cụ hữu ích này trông như thế nào:

$config[ads_text5] not found
Với điều này, chúng tôi đã hoàn thành hướng dẫn này, chúng tôi đã có cơ sở để có thể tham gia vào thế giới của NoQuery, theo xu hướng hiện nay trong việc quản trị các bộ sưu tập dữ liệu lớn, nhiều người có thể nghi ngờ kết nối trong PHP có các lựa chọn thay thế như nút. js, câu trả lời rất đơn giản, vì có nhiều hệ thống phụ trợ được tạo bằng ngôn ngữ này và với kiến ​​thức này, chúng tôi có thể sử dụng lại mã số trọn đời của mình trong khi cập nhật bản thân cho các công nghệ mới.