Saya tahu ini agak terlambat, tetapi saya pikir saya akan memasukkan sedikit kode di sini. Saya suka memiliki model yang diindeks karena dua alasan:
- Saya dapat menggunakannya seperti antarmuka, yaitu saya terpaksa memasukkan informasi ini karena itu adalah bagian dari apa yang dibutuhkan model. Ini memastikan bahwa saya memiliki dataset yang bersih. Ini hanya preferensi, bukan keharusan.
- Penelusuran yang diindeks lebih cepat daripada saat tidak diindeks.Saya belum melakukan penelitian yang cukup tentang hal ini untuk mengetahui apakah ini masalahnya dengan perpustakaan jenssegers . Tetapi masuk akal bagi saya bahwa, jika Anda menggunakan skema untuk menyiapkan koleksi dan mengaturnya untuk mengindeks bidang ini, maka akan lebih cepat saat mencari catatan dalam koleksi ini. Anda juga dapat mengatur ini secara manual dari sisi Mongo tetapi saya suka Anda dapat melakukannya dengan ekstensi Eloquent ini.
Jadi untuk orang yang membaca ini, jika saya telah meyakinkan Anda dengan argumen yang belum diverifikasi dan Anda ingin mengatur skema, saya menemukan bahwa mudah untuk mengatur koleksi tetapi tidak mudah untuk menjatuhkannya. Jika Anda ingin melakukan migrasi penuh (perhatikan bahwa Anda akan kehilangan semua data saat melakukannya ) maka Anda dapat menggunakan kode di bawah ini:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateYourCollectionTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mongodb')->create('collection_name', function ($collection) {
$collection->index('field_1');
$collection->index('field_2');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
DB::connection('mongodb')->drop(['collection_name']);
}
}