Catatan Praktis (Class) MongoDB dengan Syntax PHP
$variabel = new MongoDB\Client
$variabel->listDatabases()
$variabel->dropDatabase('namaDatabase')
$db = $variabel->namaDatabase
$db->createCollection('namaCollection')
$db->listCollections()
$db->dropCollection('namaCollection')
insertOne([])
insertMany([[],[]])
getInsertedCount()
getInsertedId()
getInsertedIds()
find() *Hasil bisa di looping
findOne(['_id' => integer|number|string])
find(
['skill' => integer|number|string]
) *Hasil dapat di looping
1 = TAMPIL 0 = SEMBUNYIKAN
$cari = $db->find(
['skill' => 'mongoDB'],
['projection' => ['_id' => 0, 'name' => 1, ...field lainnya]]
)
updateOne(
['umur' => 20],
['$set' => ['umur'=> 21]]
)
*Cari data yang pertama ditemukan dengan umur 20, update menjadi 21 *Parameter pertama: pencarian data *Paremeter kedua: SET data
updateMany(
['umur' => 20],
['$set' => ['umur'=> 21]]
)
updateMany(
['umur' => 20],
['$set' => ['fieldYangTidakAda'=> 'sekarangAdaFieddanIsi']]
)
*Bisa dengan updateOne / updateMany
getMatchedCount()
getModifiedCount()
replaceOne(
['_id' => '1'],
['_id' => '1', 'keynya' => 'valuenya']
)
- Gunakan find untuk mencari dokumen, kosongkan jika cari semua
- limit, untuk membatasi data yang tampil
- skip, untuk melangkahi berapa banyak dokumen
- sort, angka integer: 1 = Ascending, -1 = Descending
find(
[],
[
'limit' => 2,
'skip' => 2,
'sort' => ['usia' => -1]
]
)
*Parameter pertama berupa array pencarian atau kosongkan untuk semua dokumen
deleteOne(['_id' => '1'])
#MENGHAPUS LEBIH DARI 1 DOKUMEN
deleteMany(['usia' => 20])
*Menghapus semua dokumen yang mempunyai usia 20
deleteMany([])
getDeletedCount()
$db->nama_collection->updateMany([],
['$rename' => ['keyOld' => 'keyNew']]
)
- Gunakan variabel $rename untuk mengganti key
- Statement pertama (array) biarkan kosong untuk mencari semua
$data = $conn->students->aggregate([
[
'$lookup' => [
'localField' => 'id',
'from' => 'classroom',
'foreignField' => 'student_id',
'as' => 'class_join'
]
],
['$project' => [
'class_name' => 1,
]]
]);
- Join antara tabel 'classroom' dengan 'student'
- From: sengan tabel apa?
- localField: nama field yang ada di tabel students
- foreignField: field index yang ada di kolom classroom
- as: nama penampung hasil join antar tabel --
- $project: variabel untuk menampilkan fied yang mana saja/pilihan
$data = $conn->posts->aggregate([
[
'$lookup' => [
'localField' => 'author',
'from' => 'users',
'foreignField' => 'id',
'as' => 'posts_users_joined'
]
],
[
'$lookup' => [
'localField' => 'updated_by',
'from' => 'users',
'foreignField' => 'id',
'as' => 'posts_user_updated_joined'
]
],
[
'$lookup' => [
'localField' => 'id',
'from' => 'comments',
'foreignField' => 'postid',
'as' => 'posts_comments_joined'
]
],
['$project' => []]
]);
$db->NAMA_COLLECTION->rename('NAM_COLLECTION_BARU')