sql >> Database >  >> NoSQL >> MongoDB

Laravel - Mongodb [ jenssegers/laravel-mongodb ] - Schema Builder

Ik weet dat dit een beetje laat is, maar ik dacht ik gooi hier een stukje code in. Ik heb graag een geïndexeerd model om twee redenen:

  1. Ik kan het gebruiken als een interface, dat wil zeggen dat ik deze informatie moet invoeren omdat het deel uitmaakt van wat het model vereist. Dit zorgt ervoor dat ik een schone dataset heb. Dit is slechts een voorkeur, het is geen vereiste.
  2. Geïndexeerde zoekopdrachten zijn sneller dan wanneer ze niet worden geïndexeerd.Ik heb hier niet genoeg onderzoek naar gedaan om erachter te komen of dit het geval is met de bibliotheek van jenssegers . Maar het lijkt me logisch dat als je een schema gebruikt om een ​​verzameling op te zetten en deze instelt om deze velden te indexeren, het sneller zou zijn bij het zoeken naar records binnen deze verzameling. Je kunt dit ook handmatig instellen vanaf de Mongo-kant, maar ik vind het leuk dat je het kunt doen met deze welsprekende extensie.

Dus aan de persoon die dit leest, als ik je heb overtuigd met dit niet-geverifieerde argument en je wilt een schema opzetten, ik heb gemerkt dat het gemakkelijk is om de verzameling op te zetten, maar niet gemakkelijk om het te laten vallen. Als u een volledige migratie wilt uitvoeren (houd er rekening mee dat u al uw gegevens verliest wanneer u dit doet ) dan kun je de onderstaande code gebruiken:

<?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 aggregatie sorteren

  2. Kan ik MongoDB gebruiken als vervanging voor CoreData op iOS?

  3. vertraagde_jobs versus resque versus bonenstaak?

  4. Mongo-queryparameters opgeven vanuit clientcontroller (MEAN.JS)