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
Instalasi
Pastikan Anda telah menginstal driver MongoDB PHP. Anda dapat menemukan petunjuk instalasi di http. //php. net/manual/en/mongodb. instalasi. php
Kompatibilitas versi Laravel
LaravelPackageTerpelihara9. 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
Laravel
Jika 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,
Lumen
Untuk 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-Laravel
Untuk 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]; }];
Pengujian
Untuk menjalankan pengujian paket ini, jalankan
docker-compose up
_Pengujian Basis Data
Untuk 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
Jenssegers\Mongodb\MongodbServiceProvider::class,
_01Jenssegers\Mongodb\MongodbServiceProvider::class,
_02
Konfigurasi
Untuk 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
Fasih
Memperluas model dasar
Paket 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 Authenticatable
Paket 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 Lembut
Saat 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 atribut
Saat 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
tanggal
Eloquent 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 Dasar
Mengambil 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
Suka
$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 MongoDB
Ada
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
docker-compose up
_0Ukuran
Memilih dokumen jika bidang larik adalah ukuran yang ditentukan
docker-compose up
_1Regex
Memilih dokumen yang nilainya cocok dengan ekspresi reguler yang ditentukan
docker-compose up
_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
docker-compose up
_3Kebalikan dari regexp
docker-compose up
_4Jenis
Memilih dokumen jika bidang adalah jenis yang ditentukan. Untuk informasi lebih lanjut, periksa.
docker-compose up
_5Mod
Melakukan operasi modulo pada nilai bidang dan memilih dokumen dengan hasil tertentu
docker-compose up
_6Operasi Geo khusus MongoDB
Di dekat
docker-compose up
_7GeoWithin
docker-compose up
_8GeoIntersects
docker-compose up
_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 menghapus
Memasukkan, memperbarui, dan menghapus catatan berfungsi seperti Eloquent asli. Silakan periksa bagian Eloquent Laravel Docs
Di sini, hanya operasi khusus MongoDB yang ditentukan
Operasi spesifik MongoDB
Ekspresi 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
Hubungan
Penggunaan Dasar
Satu-satunya hubungan yang tersedia adalah
- Punya satu
- memiliki banyak
- Milik
- milikToMany
Hubungan khusus MongoDB adalah
- embedsOne
- embedsMany
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 pivot
Relasi 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 Relation
Jika 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 Relasi
Relasi 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 Kueri
Penggunaan Dasar
Driver 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 tersedia
Untuk melihat operasi yang tersedia, periksa bagian tersebut
Transaksi
Transaksi 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
Skema
Driver 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
- membuat dan menjatuhkan
- koleksi
- hasCollection
- index dan dropIndex [indeks gabungan juga didukung]
- unik
Operasi spesifik MongoDB
- Latar Belakang
- jarang
- berakhir
- geospasial
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 geospasial
Indeks 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
Memperpanjang
Hubungan Lintas-Database
Jika 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
Autentikasi
Jika 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
Antrian
Jika 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 Laravel
Tambahkan penyedia layanan di
use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }_7
use Jenssegers\Mongodb\Eloquent\Model; class Book extends Model { // }_2
Spesifik lumen
Dengan 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
Perbaikan
Upgrade dari versi 2 ke 3
Dalam 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