Categories: MongoDB

MongoDB PHP query LIKE

Bismillaahirrohmaanirrohiim…

Berikut ini query mysql untuk like:

select * from namatabel where namakolom LIKE '%katakunci%' order by kolomsort DESC LIMIT 0, 10

Untuk digunakan di mongoDB php, kita gunakan:

<?php
$dbName = 'namadb';
$tableName = 'namacollection';

$kolom = 'kolomygdicari';
$keyword = 'katakunci';
$sortby = 'kolomsort';
$limit = 10;
$skip = 0;

$returns = array();

$manager = new MongoDB\Driver\Manager();


$filter = array($kolom=> new MongoDB\BSON\Regex($keyword, 'i'));
$options = array('limit'=>$limit,'skip'=>$skip,'sort'=>array($sortby=>-1));

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery($dbName.'.'.$tableName, $query);

$cursor->setTypeMap(['root' => 'array', 'document' => 'array', 'array' => 'array']);
$cursor = $cursor->toArray();

foreach ($cursor as $document) {
    $document['_id'] = (array) $document['_id'];
    $returns[] = $document;
}

echo '<pre>';
print_r($returns);
echo '</pre>';
echo '<hr />';

Untuk lebih memahami tentang mapping query mysql dengan mongoDB bisa cek link berikut ini

https://docs.mongodb.com/manual/reference/sql-comparison/

db.people.find( { user_id: /bc/ } )
atau
db.people.find( { user_id: { $regex: /bc/ } } )
atau start with
db.people.find( { user_id: /^bc/ } )

Demikian terimakasih, semoga bermanfaat.

Bagikan
rasupe

Recent Posts

Subdomain pada cyberpanel tidak dapat diakses

Bismillaahirrohmaanirrohiim... Jika domain dan sub domainnya berada dalam satu vps cyberpanel, maka seringkali jadi tidak…

5 days ago

10 Aplikasi Kasir Terbaik di Indonesia (2025)

Bismillaahirrohmaanirrohiim... Dalam era digital saat ini, penggunaan aplikasi kasir (Point of Sale/POS) menjadi solusi penting…

5 days ago

Website di aapanel sering mati sendiri

Bismillaahirrohmaanirrohiim... Saat browsing-browsing saya seringkali melihat iklan aapanel, sekilas membuat penasaran sampai akhirnya saya mencoba…

7 days ago

Reset password cyberpanel via SSH

Bismillaahirrohmaanirrohiim... Berikut ini perintah untuk reset password admin cyberpanel melalui SSH command line. pastikan login…

1 week ago

Template Blogger Blogspot Gratis dan Bagus

Bismillaahirrohmaanirrohiim... Berikut ini beberapa template blogspot yang dapat anda gunakan secara gratis namun tampilannya bagus.…

2 months ago

MySQL error di xampp phpmyadmin dengan tabel “inuse”

Bismillaahirrohmaanirrohiim... Bagi yang menggunakan xampp, mungkin sudah familiar dengan database mysql dan web base phpmyadmin.…

2 months ago