DANH MỤC: PHP&MONGODB

Bài 4: Truy xuất collection trong MongoDB bằng PHP


Bài trước, mình đã giới thiệu với mọi người cách truy xuất database trong MongoDB sử dụng PHP rồi. Và sau khi mọi người đã biết các truy xuất datatabase thì bài này mình sẽ tiếp tục giới thiệu với mọi người cách truy xuất đến các collection trong database.

1, Select Collection.

Để select đến một collection trong Database của MongoDB các bạn sử dụng phương thức selectCollection() trong class Client với cú pháp như sau:

$conn->selectCollection(database, collection, options);

Trong đó:

  • $conn là biến ánh xạ object Client đã được khởi tạo.
  • database là tên database mà bạn muốn select.
  • collection là tên của collection mà bạn muốn selection ở trong database.
  • options là mảng chứa các thông số cấu hình như: readConcern, typemap,... 

 VD: Mình sẽ select collection posts trong database tuts.

<?php
use MongoDB\Client;

require_once "vendor/autoload.php";

// khoi tao class Client
$conn = new Client("mongodb://127.0.0.1:27017");

$collection = $conn->selectCollection('tuts', 'posts');

Hoặc bạn cũng có thể sử dụng phương thức sectionCollection() nhưng lúc này là bạn đã select đến database rồi.

VD: Mình sẽ select collection posts trong database tuts sử dụng phương thức selectCollection(), nhưng lúc này là đã select database từ trước rồi.

<?php
use MongoDB\Client;

require_once "vendor/autoload.php";

// khoi tao class Client
$conn = new Client("mongodb://127.0.0.1:27017");

//select database
$db = $conn->tuts;

//selection collection
$collection = $db->selectCollection('posts');

Hoặc bạn cũng có thể select collection thông qua magic method __get() trong class Client.

VD: Mình sẽ select đến collection posts trong database tuts thông qua magic method __get().

<?php
use MongoDB\Client;

require_once "vendor/autoload.php";

// khoi tao class Client
$conn = new Client("mongodb://127.0.0.1:27017");

$collection = $conn->tuts->posts;

2, Hiển thị tất cả các collection.

Để có thể xem tất cả các collection đang có trong database các bạn sử dụng phương thức listcollections() theo cú pháp sau:

$db->listCollections();

Trong đó, $db là biến ánh xạ class Client chứa database.

VD: Mình sẽ show hết các collection đang tồn tại trong database tuts trên máy mình.

$conn = new Client("mongodb://127.0.0.1:27017");

//select database
$db = $conn->tuts;

//Hiển thị các collection
$result = $db->listCollections();

foreach ($result as $item) {
    var_dump($item->getName());
}

Kết quả:

string(10) "categories"
string(5) "posts"

3, Xóa collection.

Để xóa một collection khỏi database bạn chỉ cần thực hiện phương thức dropcollection() với cú pháp như sau:

$db->dropCollection(name, options);

Trong đó:

  • $db là biến ánh xạ class Client chứa database.
  • name là tên của collection mà bạn muốn xóa.
  • options là mảng chứa các tham số tùy chỉnh như: typeMap, writeConcern.

VD: Mình sẽ thực hiện xóa collection posts trong database tuts trên máy của mình.

<?php
use MongoDB\Client;

require_once "vendor/autoload.php";

// khoi tao class Client
$conn = new Client("mongodb://127.0.0.1:27017");

//select database
$db = $conn->tuts;

//xóa collection
$result = $db->dropCollection('posts');

var_dump($result);

Kết quả trả về:

object(MongoDB\Model\BSONDocument)#14 (1) {
  ["storage":"ArrayObject":private]=>
  array(3) {
    ["ns"]=>
    string(10) "tuts.posts"
    ["nIndexesWas"]=>
    int(1)
    ["ok"]=>
    float(1)
  }
}

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

The best way to learn is to share

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia