sql >> Databasteknik >  >> NoSQL >> MongoDB

Laravel - Mongodb [ jenssegers/laravel-mongodb ] - Schemabyggare

Jag vet att det här är lite sent, men jag tänkte slänga in lite kod här. Jag gillar att ha en indexerad modell av två anledningar:

  1. Jag kan använda det som ett gränssnitt, dvs jag är tvungen att ange denna information eftersom det är en del av vad modellen kräver. Detta säkerställer att jag har en ren datauppsättning. Detta är bara preferenser, det är inte ett krav.
  2. Indexerade sökningar är snabbare än när de inte är indexerade.Jag har inte undersökt tillräckligt mycket om detta för att ta reda på om detta är fallet med jenssegers bibliotek . Men det är logiskt för mig att, om du använder ett schema för att ställa in en samling och ställer in den för att indexera dessa fält, så skulle det gå snabbare när du söker efter poster inom den här samlingen. Du kan också ställa in detta manuellt från Mongo-sidan, men jag gillar att du kan göra det med detta vältaliga tillägg.

Så till personen som läser detta, om jag har övertygat dig med detta overifierade argument och du vill skapa ett schema, jag har upptäckt att det är lätt att ställa in samlingen men inte lätt att släppa den. Om du vill göra en fullständig migrering (tänk på att du kommer att förlora all din data när du gör detta ) så kan du använda koden nedan:

<?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']);
    }
}



  1. Gruppera och visa data

  2. Schema och underdokument i mongoose.js

  3. Hur får jag åtkomst till Meteors MongoDB från en annan klient medan Meteor körs?

  4. Mongodb Geospatial index stöder inte $box?