Paket ini menambahkan fungsionalitas ke model Eloquent dan pembuat Kueri untuk MongoDB, menggunakan Laravel API asli. Pustaka ini memperluas kelas Laravel asli, sehingga menggunakan metode yang persis sama Show
InstalasiPastikan Anda telah menginstal driver MongoDB PHP. Anda dapat menemukan petunjuk instalasi di http. //php. net/manual/en/mongodb. instalasi. php Kompatibilitas versi LaravelLaravelPackageTerpelihara9. x3. 9. x✅8. x3. 8. x✅7. x3. 7. x❌6. x3. 6. x❌5. 8. x3. 5. x❌5. 7. x3. 4. x❌5. 6. x3. 4. x❌5. 5. x3. 3. x❌5. 4. x3. 2. x❌5. 3. x3. 1. x atau 3. 2. x❌5. 2. x2. 3. x atau 3. 0. x❌5. 1. x2. 2. x atau 3. 0. x❌5. 0. x2. 1. x❌4. 2. x2. 0. x❌Instal paket melalui Komposer $ composer require jenssegers/mongodb LaravelJika versi Laravel Anda TIDAK memuat paket secara otomatis, tambahkan penyedia layanan ke use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }7 Jenssegers\Mongodb\MongodbServiceProvider::class, LumenUntuk penggunaan dengan Lumen, tambahkan penyedia layanan di use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }8. Dalam file ini, Anda juga perlu mengaktifkan Eloquent. Namun Anda harus memastikan bahwa panggilan Anda ke use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }9 berada di bawah tempat Anda mendaftarkan Jenssegers\Mongodb\MongodbServiceProvider::class,00 $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_ Penyedia layanan akan mendaftarkan ekstensi database MongoDB dengan pengelola database asli. Tidak perlu mendaftarkan fasad atau objek tambahan Saat menggunakan koneksi MongoDB, Laravel akan secara otomatis memberi Anda objek MongoDB yang sesuai Proyek non-LaravelUntuk penggunaan di luar Laravel, lihat manajer Kapsul dan tambahkan $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); }); PengujianUntuk menjalankan pengujian paket ini, jalankan _Pengujian Basis DataUntuk mereset database setelah setiap pengujian, tambahkan use Illuminate\Foundation\Testing\DatabaseMigrations;_ Juga di dalam setiap kelas tes, tambahkan use DatabaseMigrations; Perlu diingat bahwa ciri-ciri ini belum didukung
KonfigurasiUntuk mengonfigurasi koneksi MongoDB baru, tambahkan entri koneksi baru ke Jenssegers\Mongodb\MongodbServiceProvider::class,03 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ], Kunci Jenssegers\Mongodb\MongodbServiceProvider::class,_04 berisi string koneksi yang digunakan untuk terhubung ke penerapan MongoDB Anda. Format dan opsi yang tersedia didokumentasikan dalam dokumentasi MongoDB Alih-alih menggunakan string koneksi, Anda juga dapat menggunakan opsi konfigurasi Jenssegers\Mongodb\MongodbServiceProvider::class,05 dan Jenssegers\Mongodb\MongodbServiceProvider::class,06 agar string koneksi dibuat untuk Anda 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ], Kunci Jenssegers\Mongodb\MongodbServiceProvider::class,_07 dalam konfigurasi koneksi sesuai dengan FasihMemperluas model dasarPaket ini menyertakan kelas Eloquent berkemampuan MongoDB yang dapat Anda gunakan untuk menentukan model untuk koleksi yang sesuai use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }_ Sama seperti model normal, kelas model MongoDB akan mengetahui koleksi mana yang akan digunakan berdasarkan nama model. Untuk Jenssegers\Mongodb\MongodbServiceProvider::class,_09, koleksi Jenssegers\Mongodb\MongodbServiceProvider::class,10 akan digunakan Untuk mengubah koleksi, berikan properti Jenssegers\Mongodb\MongodbServiceProvider::class,_11 Jenssegers\Mongodb\MongodbServiceProvider::class,0 CATATAN. Dokumen MongoDB disimpan secara otomatis dengan ID unik yang disimpan di properti Jenssegers\Mongodb\MongodbServiceProvider::class,12. Jika Anda ingin menggunakan ID Anda sendiri, gantikan properti Jenssegers\Mongodb\MongodbServiceProvider::class,13 dan setel ke nama atribut kunci utama Anda sendiri Jenssegers\Mongodb\MongodbServiceProvider::class,1 Demikian juga, Anda dapat menentukan properti Jenssegers\Mongodb\MongodbServiceProvider::class,_14 untuk mengganti nama koneksi database yang harus digunakan saat menggunakan model Jenssegers\Mongodb\MongodbServiceProvider::class,2 Memperluas model dasar AuthenticatablePaket ini menyertakan kelas MongoDB Authenticatable Eloquent Jenssegers\Mongodb\MongodbServiceProvider::class,15 yang dapat Anda gunakan untuk mengganti kelas Authenticatable default Jenssegers\Mongodb\MongodbServiceProvider::class,16 untuk model Jenssegers\Mongodb\MongodbServiceProvider::class,17 Anda Jenssegers\Mongodb\MongodbServiceProvider::class,_3 Penghapusan LembutSaat soft menghapus model, itu sebenarnya tidak dihapus dari database Anda. Sebagai gantinya, stempel waktu delete_at disetel pada catatan Untuk mengaktifkan penghapusan sementara untuk model, terapkan Jenssegers\Mongodb\MongodbServiceProvider::class,18 Trait ke model Jenssegers\Mongodb\MongodbServiceProvider::class,_4 Untuk informasi lebih lanjut, periksa Menjaga atributSaat memilih antara menjaga atribut atau menandai beberapa sebagai dapat diisi, Taylor Otwell lebih memilih rute yang dapat diisi. Ini mengingat masalah keamanan baru-baru ini yang dijelaskan di sini Ingatlah bahwa menjaga tetap berfungsi, tetapi Anda mungkin mengalami perilaku yang tidak terduga tanggalEloquent memungkinkan Anda bekerja dengan objek Carbon atau DateTime alih-alih objek MongoDate. Secara internal, tanggal ini akan dikonversi menjadi objek MongoDate saat disimpan ke database Jenssegers\Mongodb\MongodbServiceProvider::class,5 Ini memungkinkan Anda untuk mengeksekusi kueri seperti ini Jenssegers\Mongodb\MongodbServiceProvider::class,6 Penggunaan DasarMengambil semua model Jenssegers\Mongodb\MongodbServiceProvider::class,7 Mengambil catatan dengan kunci utama Jenssegers\Mongodb\MongodbServiceProvider::class,_8 Di mana Jenssegers\Mongodb\MongodbServiceProvider::class,_9 ATAU Pernyataan $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_0 DAN pernyataan $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_1 di mana $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_2 Saat menggunakan Jenssegers\Mongodb\MongodbServiceProvider::class,_19 objek akan dikembalikan jika bidang tidak ada. Gabungkan dengan Jenssegers\Mongodb\MongodbServiceProvider::class,_20 untuk meninggalkan dokumen tersebut dimana Antara $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_3 dimanaNull $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_4 di manaTanggal $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_5 Penggunaannya sama dengan Jenssegers\Mongodb\MongodbServiceProvider::class,_21 / Jenssegers\Mongodb\MongodbServiceProvider::class,22 / Jenssegers\Mongodb\MongodbServiceProvider::class,23 / Jenssegers\Mongodb\MongodbServiceProvider::class,24 Lanjut mana $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_6 dipesan oleh $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_7 Offset & Limit (lewati & ambil) $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_8 groupBy Kolom terpilih yang tidak dikelompokkan akan digabungkan dengan fungsi Jenssegers\Mongodb\MongodbServiceProvider::class,25 $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->withEloquent();_9 Berbeda Distinct membutuhkan bidang untuk mengembalikan nilai yang berbeda $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); });0 Distinct dapat digabungkan dengan where $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); });1 Menyukai $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); });2 Pengumpulan Agregasi hanya tersedia untuk versi MongoDB yang lebih besar dari 2. 2. x $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); });3 Agregasi dapat digabungkan dengan where $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); });4 Agregasi juga dapat digunakan pada sub-dokumen $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); });5 CATATAN. Agregasi ini hanya berfungsi dengan sub-dokumen tunggal (seperti Jenssegers\Mongodb\MongodbServiceProvider::class,26) bukan array subdokumen (seperti Jenssegers\Mongodb\MongodbServiceProvider::class,27) Menambah/Mengurangi nilai kolom Lakukan penambahan atau pengurangan (default 1) pada atribut yang ditentukan $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); });6 Jumlah objek yang diperbarui dikembalikan $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); });7 Anda juga dapat menentukan kolom tambahan untuk diperbarui $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); });_8 Operator khusus MongoDBAda Mencocokkan dokumen yang memiliki bidang tertentu $capsule->getDatabaseManager()->extend('mongodb', function($config, $name) { $config['name'] = $name; return new Jenssegers\Mongodb\Connection($config); });_9 Semua Mencocokkan larik yang berisi semua elemen yang ditentukan dalam kueri _0Ukuran Memilih dokumen jika bidang larik adalah ukuran yang ditentukan _1Regex Memilih dokumen yang nilainya cocok dengan ekspresi reguler yang ditentukan _2CATATAN. Anda juga dapat menggunakan operasi regexp Laravel. Ini sedikit lebih fleksibel dan secara otomatis akan mengonversi string ekspresi reguler Anda menjadi objek Jenssegers\Mongodb\MongodbServiceProvider::class,28 _3Kebalikan dari regexp _4Jenis Memilih dokumen jika bidang adalah jenis yang ditentukan. Untuk informasi lebih lanjut, periksa. _5Mod Melakukan operasi modulo pada nilai bidang dan memilih dokumen dengan hasil tertentu _6Operasi Geo khusus MongoDBDi dekat _7GeoWithin _8GeoIntersects _9GeoNear Anda dapat membuat kueri Jenssegers\Mongodb\MongodbServiceProvider::class,_29 di mongoDB. Anda tidak perlu menentukan bidang otomatis pada model. Instance yang dikembalikan adalah koleksi. Jadi, Anda dapat melakukan operasi Pengumpulan. Pastikan model Anda memiliki bidang Jenssegers\Mongodb\MongodbServiceProvider::class,_30, dan 2ndSphereIndex. Data di bidang Jenssegers\Mongodb\MongodbServiceProvider::class,_30 harus disimpan sebagai GeoJSON. Jenssegers\Mongodb\MongodbServiceProvider::class,_30 poin harus disimpan sebagai sistem referensi untuk perhitungan geometri. Itu berarti, pada dasarnya, Anda perlu menyimpan Jenssegers\Mongodb\MongodbServiceProvider::class,33, dalam urutan itu secara khusus, dan untuk menemukan yang dekat dengan jarak yang dihitung, Anda Jenssegers\Mongodb\MongodbServiceProvider::class,34 use Illuminate\Foundation\Testing\DatabaseMigrations;_0 Menyisipkan, memperbarui, dan menghapusMemasukkan, memperbarui, dan menghapus catatan berfungsi seperti Eloquent asli. Silakan periksa bagian Eloquent Laravel Docs Di sini, hanya operasi khusus MongoDB yang ditentukan Operasi spesifik MongoDBEkspresi Mentah Ekspresi ini akan disuntikkan langsung ke kueri use Illuminate\Foundation\Testing\DatabaseMigrations;_1 Anda juga dapat melakukan ekspresi mentah pada objek MongoCollection internal. Jika ini dijalankan pada kelas model, itu akan mengembalikan koleksi model Jika ini dijalankan pada pembuat kueri, respons asli akan dikembalikan Batas waktu kursor Untuk mencegah pengecualian Jenssegers\Mongodb\MongodbServiceProvider::class,_35, Anda dapat menetapkan nilai batas waktu yang akan diterapkan ke kursor secara manual use Illuminate\Foundation\Testing\DatabaseMigrations;_2 Upsert Perbarui atau sisipkan dokumen. Opsi tambahan untuk metode pembaruan diteruskan langsung ke metode pembaruan asli use Illuminate\Foundation\Testing\DatabaseMigrations;_3 Proyeksi Anda dapat menerapkan proyeksi ke kueri Anda menggunakan metode ________2______36 use Illuminate\Foundation\Testing\DatabaseMigrations;_4 Proyeksi dengan Paginasi use Illuminate\Foundation\Testing\DatabaseMigrations;_5 Dorongan Tambahkan item ke array use Illuminate\Foundation\Testing\DatabaseMigrations;_6 use Illuminate\Foundation\Testing\DatabaseMigrations;_7 Jika Anda TIDAK menginginkan item duplikat, setel parameter ketiga ke Jenssegers\Mongodb\MongodbServiceProvider::class,37 use Illuminate\Foundation\Testing\DatabaseMigrations;_8 Menarik Hapus item dari array use Illuminate\Foundation\Testing\DatabaseMigrations;_9 use DatabaseMigrations;_0 Batal disetel Hapus satu atau beberapa bidang dari dokumen use DatabaseMigrations;_1 HubunganPenggunaan DasarSatu-satunya hubungan yang tersedia adalah
Hubungan khusus MongoDB adalah
Ini adalah contoh kecil use DatabaseMigrations;_2 Relasi terbalik dari Jenssegers\Mongodb\MongodbServiceProvider::class,38 adalah Jenssegers\Mongodb\MongodbServiceProvider::class,39 use DatabaseMigrations;_3 milikToMany dan pivotRelasi milikToMany tidak akan menggunakan "tabel" pivot tetapi akan mendorong id ke atribut related_ids sebagai gantinya. Ini membuat parameter kedua untuk metode milikToMany tidak berguna Jika Anda ingin menentukan kunci khusus untuk relasi Anda, setel ke Jenssegers\Mongodb\MongodbServiceProvider::class,40 use DatabaseMigrations;_4 EmbedsMany RelationJika Anda ingin menyematkan model, daripada mereferensikannya, Anda dapat menggunakan relasi Jenssegers\Mongodb\MongodbServiceProvider::class,41. Relasi ini mirip dengan relasi Jenssegers\Mongodb\MongodbServiceProvider::class,_38 tetapi menyematkan model di dalam objek induk INGAT. Relasi ini mengembalikan koleksi Eloquent, mereka tidak mengembalikan objek pembuat kueri use DatabaseMigrations;_5 Anda dapat mengakses model tersemat melalui properti dinamis use DatabaseMigrations;_6 Hubungan terbalik tersedia secara otomatis. Anda tidak perlu mendefinisikan hubungan terbalik ini use DatabaseMigrations;_7 Memasukkan dan memperbarui model tersemat berfungsi serupa dengan relasi ________2______38 use DatabaseMigrations;_8 Anda dapat memperbarui model tersemat menggunakan metode Jenssegers\Mongodb\MongodbServiceProvider::class,44 mereka (tersedia sejak rilis 2. 0. 0) use DatabaseMigrations;_9 Anda dapat menghapus model tersemat dengan menggunakan metode Jenssegers\Mongodb\MongodbServiceProvider::class,45 pada relasi, atau metode Jenssegers\Mongodb\MongodbServiceProvider::class,46 pada model (tersedia sejak rilis 2. 0. 0) 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ],_0 Jika Anda ingin menambah atau menghapus model tersemat, tanpa menyentuh database, Anda dapat menggunakan metode Jenssegers\Mongodb\MongodbServiceProvider::class,47 dan Jenssegers\Mongodb\MongodbServiceProvider::class,48 Untuk akhirnya menulis perubahan ke database, simpan objek induk 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ],_1 Seperti relasi lainnya, embedsMany mengasumsikan kunci lokal relasi berdasarkan nama model. Anda dapat mengganti kunci lokal default dengan meneruskan argumen kedua ke metode embedsMany 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ],_2 Relasi yang disematkan akan mengembalikan Kumpulan item yang disematkan alih-alih pembuat kueri. Lihat operasi yang tersedia di sini. https. //laravel. com/docs/master/collections EmbedsSatu RelasiRelasi embedsOne mirip dengan relasi embedsMany, tetapi hanya menyematkan satu model 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ],_3 Anda dapat mengakses model tersemat melalui properti dinamis 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ],_4 Memasukkan dan memperbarui model tersemat berfungsi serupa dengan relasi ________2______49 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ],_5 Anda dapat memperbarui model tersemat menggunakan metode Jenssegers\Mongodb\MongodbServiceProvider::class,_44 (tersedia sejak rilis 2. 0. 0) 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ],_6 Anda bisa mengganti model tersemat dengan model baru seperti ini 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ],_7 Pembuat KueriPenggunaan DasarDriver basis data dihubungkan langsung ke pembuat kueri asli Saat menggunakan koneksi MongoDB, Anda akan dapat membuat kueri yang lancar untuk melakukan operasi basis data Demi kenyamanan Anda, ada Jenssegers\Mongodb\MongodbServiceProvider::class,_51 alias untuk Jenssegers\Mongodb\MongodbServiceProvider::class,52 serta beberapa operator/operasi khusus MongoDB tambahan 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ],_8 Jika Anda terbiasa dengan Eloquent Queries, ada fungsi yang sama Operasi yang tersediaUntuk melihat operasi yang tersedia, periksa bagian tersebut TransaksiTransaksi memerlukan versi MongoDB ^4. 0 serta penerapan set replika atau cluster yang dipecah. Anda dapat menemukan informasi lebih lanjut di dokumen MongoDB Penggunaan Dasar'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('DB_DSN'), 'database' => env('DB_DATABASE', 'homestead'), ],_9 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ],_0 Untuk membatalkan transaksi, panggil metode Jenssegers\Mongodb\MongodbServiceProvider::class,53 kapan saja selama transaksi 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ],_1 CATATAN. Transaksi di MongoDB tidak dapat disarangkan. DB. fungsi beginTransaction() akan memulai transaksi baru dalam sesi baru yang dibuat atau yang sudah ada dan akan menaikkan RuntimeException saat transaksi sudah ada. Lihat lebih lanjut di dokumen resmi MongoDB 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ],_2 SkemaDriver basis data juga memiliki dukungan pembuat skema (terbatas). Anda dapat dengan mudah memanipulasi koleksi dan mengatur indeks Penggunaan Dasar'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ],_3 Anda juga dapat meneruskan semua parameter yang ditentukan ke parameter Jenssegers\Mongodb\MongodbServiceProvider::class,54 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ],_4 Operasi yang diwariskan
Operasi spesifik MongoDB
Semua operasi (tidak didukung) lainnya diimplementasikan sebagai metode dummy pass-through karena MongoDB tidak menggunakan skema yang telah ditentukan sebelumnya Baca lebih lanjut tentang pembuat skema aktif Indeks geospasialIndeks geospasial berguna untuk menanyakan dokumen berbasis lokasi Mereka datang dalam dua bentuk. Jenssegers\Mongodb\MongodbServiceProvider::class,55 dan Jenssegers\Mongodb\MongodbServiceProvider::class,56. Gunakan pembuat skema untuk menambahkan ini ke koleksi 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ],_5 Untuk menambahkan indeks Jenssegers\Mongodb\MongodbServiceProvider::class,_56 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ],_6 MemperpanjangHubungan Lintas-DatabaseJika Anda menggunakan pengaturan MongoDB dan SQL hibrid, Anda dapat menentukan hubungan di antara keduanya Model akan secara otomatis mengembalikan relasi terkait MongoDB atau terkait SQL berdasarkan jenis model terkait Jika Anda ingin fungsionalitas ini berfungsi dua arah, model SQL Anda harus menggunakan sifat Jenssegers\Mongodb\MongodbServiceProvider::class,58 Fungsionalitas ini hanya berfungsi untuk Jenssegers\Mongodb\MongodbServiceProvider::class,49, Jenssegers\Mongodb\MongodbServiceProvider::class,38 dan Jenssegers\Mongodb\MongodbServiceProvider::class,39 Model MySQL harus menggunakan sifat Jenssegers\Mongodb\MongodbServiceProvider::class,_62 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ],_7 Dalam model MongoDB Anda, Anda harus menentukan hubungannya 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ],_8 AutentikasiJika Anda ingin menggunakan fungsionalitas Auth asli Laravel, daftarkan penyedia layanan yang disertakan ini 'mongodb' => [ 'driver' => 'mongodb', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', 27017), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'), 'options' => [ 'appname' => 'homestead', ], ],_9 Penyedia layanan ini akan sedikit memodifikasi DatabaseReminderRepository internal untuk menambahkan dukungan untuk pengingat kata sandi berbasis MongoDB Jika Anda tidak menggunakan pengingat kata sandi, Anda tidak perlu mendaftarkan penyedia layanan ini dan yang lainnya akan berfungsi dengan baik AntrianJika Anda ingin menggunakan MongoDB sebagai backend database Anda, ubah driver di Jenssegers\Mongodb\MongodbServiceProvider::class,63 use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }_0 Jika Anda ingin menggunakan MongoDB untuk menangani pekerjaan yang gagal, ubah database di Jenssegers\Mongodb\MongodbServiceProvider::class,63 use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }_1 Khusus LaravelTambahkan penyedia layanan di use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }_7 use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }_2 Spesifik lumenDengan Lumen, tambahkan penyedia layanan di use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }8. Namun Anda harus memastikan bahwa Anda menambahkan berikut setelah Jenssegers\Mongodb\MongodbServiceProvider::class,00 pendaftaran use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }_3 PerbaikanUpgrade dari versi 2 ke 3Dalam rilis utama baru yang mendukung ekstensi PHP MongoDB baru ini, kami juga memindahkan lokasi kelas Model dan mengganti kelas model MySQL dengan sebuah ciri Harap ubah semua referensi Jenssegers\Mongodb\MongodbServiceProvider::class,_68 ke Jenssegers\Mongodb\MongodbServiceProvider::class,69 baik di bagian atas file model Anda atau alias terdaftar Anda use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }_4 Jika Anda menggunakan relasi hibrid, kelas MySQL Anda sekarang harus memperluas kelas model Eloquent asli Jenssegers\Mongodb\MongodbServiceProvider::class,70 alih-alih Jenssegers\Mongodb\MongodbServiceProvider::class,71 yang dihapus Sebagai gantinya gunakan sifat Jenssegers\Mongodb\MongodbServiceProvider::class,_58 yang baru. Ini seharusnya memperjelas karena hanya ada satu kelas model tunggal dalam paket ini use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }_5 Relasi tersemat kini mengembalikan Jenssegers\Mongodb\MongodbServiceProvider::class,_73, bukan kelas Koleksi kustom. Jika Anda menggunakan salah satu metode khusus yang tersedia, konversikan ke operasi Pengumpulan Bagaimana cara menghubungkan proyek Laravel dengan MongoDB?Langkah selanjutnya adalah membuat konfigurasi untuk koneksi Laravel MongoDB. Untuk melakukannya, buka proyek di editor teks atau IDE favorit Anda dan temukan file config/database. file php. Di dalam file itu, Anda akan melihat sebuah array bernama koneksi
Bagaimana cara menginstal MongoDB di Laravel?Menginstal MongoDB di Proyek Laravel . Langkah 1. Instal repositori. . Langkah 2. Selanjutnya, jalankan komponen untuk menginstal Jenssegers/MongoDB Langkah 3. Sertakan penyedia layanan Langkah 4. Tambahkan yang berikut ini ke daftar penyedia layanan Anda di config/app. . Langkah 5. Menginstal pengaturan Database. . Langkah 6. Menyiapkan Bagaimana cara mendapatkan data dari MongoDB menggunakan Laravel?Anda dapat melakukannya dengan perintah berikut. . pecl instal mongodb. . cp /opt/homebrew/Cellar/pcre2/10. 36/include/pcre2. h /opt/homebrew/Cellar/php\@7. */7. *. */include/php/ext/pcre/pcre2. h. . komposer buat-proyek laravel/laravel laravel-mongodb. . cd laravel-mongodb. . php tukang melayani. . komposer memerlukan jenssegers/mongodb Bisakah MongoDB digunakan dengan php?Anda dapat menambahkan driver ke aplikasi Anda untuk bekerja dengan MongoDB di PHP . Driver PHP MongoDB terdiri dari dua komponen berikut. Ekstensi , yang menyediakan API tingkat rendah dan terutama berfungsi untuk mengintegrasikan libmongoc dan libbson dengan PHP. |