MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Laravel - Mongodb [ jenssegers/laravel-mongodb ] - Kreator schematów

Wiem, że to trochę za późno, ale pomyślałem, że wrzucę tu trochę kodu. Lubię mieć indeksowany model z dwóch powodów:

  1. Mogę używać go jak interfejsu, tj. jestem zmuszony wprowadzić te informacje, ponieważ jest to część tego, czego wymaga model. Gwarantuje to, że mam czysty zestaw danych. To tylko preferencja, a nie wymóg.
  2. Wyszukiwania zindeksowane są szybsze niż wtedy, gdy nie są indeksowane.Nie przeprowadziłem wystarczająco dużo badań, aby dowiedzieć się, czy tak jest w przypadku biblioteki jenssegers . Ale ma dla mnie sens, że jeśli użyjesz schematu do skonfigurowania kolekcji i ustawisz go na indeksowanie tych pól, wyszukiwanie rekordów w tej kolekcji będzie szybsze. Możesz również ustawić to ręcznie ze strony Mongo, ale podoba mi się, że możesz to zrobić za pomocą tego rozszerzenia Eloquent.

A więc do osoby, która to czyta, jeśli przekonałem Cię tym niezweryfikowanym argumentem i chcesz skonfigurować schemat, odkryłem, że łatwo jest skonfigurować kolekcję, ale nie jest łatwo ją usunąć. Jeśli chcesz przeprowadzić pełną migrację (pamiętaj, że utracisz wszystkie dane, gdy to zrobisz ) możesz użyć poniższego kodu:

<?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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB ustawił limit na $inc

  2. Odmowa uprawnień, gdy polecenie „mongod” zostanie uruchomione po udanej instalacji

  3. Mongoose findOneAndUpdate:zaktualizuj obiekt w tablicy obiektów

  4. jak wyświetlić dane z dokumentu do index.phtml w zf2?

  5. Gdzie jest baza danych meteor MongoDB?