06. Thực hành một số hàm căn bản của PHP với MongoDB
1. Yêu cầu cần có:
- Mongodb – Hướng dẫn cài đặt
- RoboMongo – Download – là 1 phần mềm free mongodb cho các bạn không quen dùng commandline – Dữ liệu mẫu thực hành.
- EasyPHP – Download – cài đặt extension mongodb cho EasyPHP
- PHPEditor – notepad++, PHPDesigner, Dreamweaver v.v
2. Thực hành:
- Chạy EasyPHP – gõ localhost hoặc 127.0.0.1 để chạy web
- tạo thư mục example trong Thư mục cài đặt\EasyPHP-DevServer-14.1VC11\data\localweb.
- tạo file index.php trong example.
3. Kết nối với MongoDB:
Hàm kết nối mongodb sử dụng username password. nếu không có username, password thì chúng ta chỉ cần kết nối bỏ qua authentication.
1 2 |
$con = new MongoClient("mongodb://localhost:27017"); print_r($con->listDBs()); |
dùng print_r() để show những đối tượng kiểu array
Mình đã có 3 database nên khi chạy lệnh
1 |
print_r($con->listDBs()); |
Hiện như sau:
Bây giờ chúng ta sẽ dùng html để cho dễ nhìn nhé:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
{{urvanov-syntax-highlighter-internal:0}} <table border="1"> <thead> <th>Name database</th> <th>size On Disk (bytes)</th> </thead> <tbody> {{urvanov-syntax-highlighter-internal:1}} <tr> <td> {{urvanov-syntax-highlighter-internal:2}} </td> <td> {{urvanov-syntax-highlighter-internal:3}} </td> </tr> {{urvanov-syntax-highlighter-internal:4}} </tbody> <tfoot> <tr> <td colspan="2"> {{urvanov-syntax-highlighter-internal:5}} </td> </tr> </tfoot> </table> |
Đây là 1 function trên php.net mình đã làm lại có thể dùng cho kết nối dùng userpass hoặc ko có userpass
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
function MongoConnect($username, $password, $database, $host) { $ConnectionString = ""; if(trim($username)!=""||trim($password)!="") $ConnectionString = "mongodb://{$username}:{$password}@{$host}/{$database}"; // mình sẽ hướng dẫn sau về Username Pass login // vì phiên bản 3.0 khác với 2.6 về mã hóa và authentication (robomongo chưa hỗ trợ 3.0 mongodb) else $ConnectionString = "mongodb://{$host}"; $con = new MongoClient($ConnectionString); // Connect to Mongo Server $db = $con->selectDB($database); // Connect to Database } $user = ""; $pass = ""; $db = "dtmitest"; $host = "localhost:27017"; // gọi kết nối $db_get = MongoConnect($user,$pass, $db, $host); |
4. Kết nối tới database:
1 |
{{urvanov-syntax-highlighter-internal:0}} |
5. Chọn Collection cần hiện dữ liệu:
1 |
{{urvanov-syntax-highlighter-internal:0}} |
6. Hiện document trong Collection đã chọn:
Cách 1:
1 |
{{urvanov-syntax-highlighter-internal:0}} |
Cách 2: Làm gọn luôn
1 |
{{urvanov-syntax-highlighter-internal:0}} |
7. Insert dữ liệu mới vào Collection
Cách 1: thêm dữ liệu mới
1 |
{{urvanov-syntax-highlighter-internal:0}} |
Cách 2: gọn hơn
1 |
{{urvanov-syntax-highlighter-internal:0}} |
8. Select dữ liệu trong mongodb
1 |
{{urvanov-syntax-highlighter-internal:0}} |
Ở đây mình tách kiểu kiện ra cho dễ nhìn các bạn có thể lồng cả array vào trong find() luôn nhé
select với điều kiện and x >= 10 và x <=20
1 |
{{urvanov-syntax-highlighter-internal:0}} |
Select với điều kiện Or X = 10 hoặc X = 20
1 |
{{urvanov-syntax-highlighter-internal:0}} |
9. Update với điều kiện X=26 set name = 26DTMI (ban đầu là : day la 26)
hàm update() sẽ nhận vào vào 2 thông số Update(điều kiện, recore update)
1 |
{{urvanov-syntax-highlighter-internal:0}} |
Update với điều kiện X=26
10. Delete Document với điều kiện x=26
1 |
{{urvanov-syntax-highlighter-internal:0}} |
11. Một số thuộc tính khác dùng trong insert update delete
như trên là đã xong nhưng căn bản cần dùng trong xử lý dữ liệu dưới đây là 1 số mapping khác dùng để viết điều kiện
WHERE name LIKE “%dtmi%” <=> find(array(“name” => new MongoRegex(“/Joe/”)));
WHERE name LIKE “dtmi%” <=> find(array(“name” => new MongoRegex(“/^Joe/”)));
ORDER BY name DESC <=> find()->sort(array(“name” => -1));
WHERE a=1 and b=’q’ <=> find(array(“a” => 1, “b” => “q”));
LIMIT 1 <=> find()->limit(1);
LIMIT 20, 10 <=> find()->limit(10)->skip(20);
và 1 số trường hợp ít thông dụng khác các bạn có thể check tại
http://php.net/manual/en/mongo.sqltomongo.php
như vậy là đã xong phần thực hành PHP và MongoDB rồi. Nhưng chưa hết đâu bài sau chúng ta sẽ cũng làm với ASP.NET MVC nhé
Code của bài trên download tại đây
https://www.dtmi.net/thuc-hanh-mot-so-ham-can-ban-cua-php-voi-mongodb/Thực hành một số hàm căn bản của PHP với MongoDBPHPdelete document,Insert Document,Mapping SQL to MongoDB,MongoDB,PHP,select document,update document