sql >> Databáze >  >> NoSQL >> MongoDB

Laravel - Mongodb [ jenssegers/laravel-mongodb ] - Tvůrce schémat

Vím, že je to trochu pozdě, ale myslel jsem, že sem vložím trochu kódu. Líbí se mi mít indexovaný model ze dvou důvodů:

  1. Mohu jej používat jako rozhraní, tj. jsem nucen zadat tyto informace, protože je to součást toho, co model vyžaduje. To zajišťuje, že mám čistý soubor dat. Toto je pouze preference, není to požadavek.
  2. Indexovaná vyhledávání jsou rychlejší, než když nejsou indexována.Neprovedl jsem v tom dostatečný průzkum, abych zjistil, zda je to případ knihovny jenssegers . Ale dává mi smysl, že pokud použijete schéma k nastavení kolekce a nastavíte ji na indexování těchto polí, bude to rychlejší při hledání záznamů v této kolekci. Můžete to také nastavit ručně ze strany Mongo, ale líbí se mi, že to můžete udělat s tímto rozšířením Eloquent.

Takže tomu, kdo to čte, pokud jsem vás přesvědčil tímto neověřeným argumentem a pokud byste chtěli nastavit schéma, zjistil jsem, že je snadné nastavit kolekci, ale není snadné ji zrušit. Pokud chcete provést úplnou migraci (uvědomte si, že při této akci přijdete o všechna data ), pak můžete použít níže uvedený kód:

<?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. MongoDB se nerovná

  2. Jak mohu dotazovat mongodb pomocí mongoidu/railů bez vypršení časového limitu?

  3. Jak používat $unset a $set v kombinaci v mongoDB

  4. Výmluvný Outside of Laravel s několika DB připojeními jenssegers/laravel-mongodb