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

CPU usage tinggi pada server

Bismillaahirrohmaanirrohiim... Untuk mendeteksi cpu usage tinggi memang perkara rumit, adakalanya karena codingan bermasalah, akses ke…

2 weeks ago

Membersihkan log mongodb yang besar

Bismillaahirrohmaanirrohiim... Jika tidak dirawat dan dicek berkala, log mongodb akan semakin membesar. Bahkan sampai menghabiskan…

4 weeks ago

Cara mengakses gps di HP dengan javascript

Bismillaahirrohmaanirrohiim... Jika kita membuat website yang digunakan untuk memantau lokasi HP client, maka kita memerlukan…

4 months ago

Menghitung jarak dua titik koordinat dengan php dan javascript

Bismillaahirrohmaanirrohiim... Kali ini kita akan mencoba menerapkan rumus trigonometeri dari formula haversine, yang digunakan untuk…

4 months ago

Kemasan cleo botol kecil sering bikin tangan terluka

Bismillaahirrohmaanirrohiim... Disini saya akan berbagi pengalaman tentang susahnya membuka tutup botol cleo kecil ukuran 220ml.…

4 months ago

Solusi InsCek pada meteran PLN

Bismillaahirrohmaanirrohiim... Kali ini saya akan berbagi pengalaman tentang mati lampu yang disebabkan oleh permasalahan arus…

4 months ago