Práce s MongoDB limitovanými kolekcemi z Javy

Úvod

v MongoDB obvykle neexistuje žádný limit na velikost kolekce. Čím více dokumentů indexujete, tím větší sbírka roste. Pro ukládání protokolů nebo aplikace s vysokou propustností však kolekce neomezené velikosti není vždy ideální strukturou. V těchto případech je často vhodnější použít jiný typ kolekce zvané limitovaná kolekce. V tomto článku se dozvíme více o tomto speciálním typu kolekce a diskutujeme o výhodách a nevýhodách práce s MongoDB limitovanými kolekcemi v Javě.

předpoklady

než se blíže podíváme na omezené sbírky a na to, jak fungují, je důležité zkontrolovat systémové požadavky. Pro tento úkol existuje pouze jeden předpoklad: musíte se ujistit, že MongoDB i MongoDB Java driver byly předem správně nakonfigurovány.

co jsou MongoDB limitované sbírky?

jak jsme uvedli v úvodu, většina sbírek MongoDB není omezena velikostí. Limitované sbírky, na druhé straně, jsou kruhové sbírky pevné velikosti, které sledují pořadí vložení. Termín „Kruhový“ označuje skutečnost, že po dosažení pevné velikosti přidělené limitované sbírce začne automaticky mazat nejstarší dokumenty ve sbírce a přepisovat je tak, aby vyhovovaly novým dokumentům– podobně jako kruhová vyrovnávací paměť. Další klíčovou charakteristikou limitovaných sbírek je zachování pořadí vkládání; to eliminuje potřebu indexu pro vrácení dokumentů v pořadí vložení. Celkově struktura a funkčnost limitované kolekce podporuje vysoký výkon pro operace vytváření, čtení a mazání.

případy použití pro kolekci s limitem MongoDB

ačkoli standardní kolekce MongoDB bude ve většině případů fungovat dobře, existují určité případy použití, kdy lze výkon optimalizovat pomocí omezené kolekce. Mezi běžné případy použití patří:

  1. logovací informace
  2. data mezipaměti
  3. informace o auditu

ve všech těchto případech použití je výkon optimalizován odstraněním indexu a kruhovým (first-in-first-out) povahou sbírky, která udržuje pořádek a udržuje používání úložiště pod kontrolou.

jak vytvořit limitovanou kolekci MongoDB pomocí Java

Nyní, když chápeme, jak fungují limitované sbírky, podívejme se na nějaký kód, který je využívá. Níže uvedený kód ukazuje příklad, jak vytvořit kolekci s limitem MongoDB:

v těchto několika řádcích kódu se toho hodně děje, takže se podívejme blíže a zkontrolujeme, co se děje, řádek po řádku:

  1. nejprve se připojíme k nasazení MongoDB, které běží lokálně.
  2. jakmile je instance klienta MongoDB připojena k nasazení MongoDB, použijeme metodu getDatabase() pro přístup k databázi.
  3. nakonec použijeme metodu createCollection() k explicitnímu vytvoření kolekce. Tato metoda umožňuje uživateli poskytnout různé možnosti pomocí CreateCollectionOptions(). V tomto příkladu jsme uvedli, že kolekce bude omezena a že její velikost v bajtech bude 256.

po spuštění kódu budeme mít novou kolekci heroColl v databázi heroDB s omezenou velikostí 256 bajtů.

poznámka: MongoDB automaticky vytvoří index v poli _id, ale tento automatický index může být zakázán, aby se zlepšil výkon vložek.

pokud se rozhodnete zakázat automatický index, kód bude vypadat takto:

1
2
3
4
db.createCollection („heroColl“, new CreateCollectionOptions ()
.limitován (true)
.autoIndex (false)
.sizeInBytes(256));

jak vložit dokument MongoDB do kolekce s limitem MongoDB pomocí Java

dále se podíváme na příklad, kdy vložíme dokument do naší limitované kolekce:

po spuštění tohoto kódu můžeme ověřit operaci vložení pomocí MongoDB shellu.

  • nejprve otevřete databázi“ heroDB“:
1
2
použití heroDB
přepnuto na db heroDB
  • poté najděte dokumenty ve sbírce „heroCall“:
1
db.heroColl.najít().pěkný()
  • vrácené výsledky by měly vypadat následovně:
1
2
3
4
5
6
7
{
„_id“ : ObjectId(„5ce4dc71a7986c1842433d0f“),
„heroName“ : „Ethan“,
„age“ : 25,
„nationality“ : „American“,
„movie“ : „mission impossible“
}

výhody limitované kolekce MongoDB

práce s limitovanými kolekcemi MongoDB má několik klíčových výhod:

  1. MongoDB limitované kolekce poskytují vyšší propustnost, protože dotazy nepotřebují index pro vrácení dokumentů v pořadí vložení.

  2. limitovaná kolekce provede aktualizaci pouze v případě, že aktualizovaný dokument odpovídá původní velikosti dokumentu. Tím je zajištěno, že dokumenty nemění své umístění na disku.

  3. Pevná velikost a kruhová povaha limitované kolekce z něj činí ideální volbu pro ukládání souborů protokolu.

nevýhody limitované kolekce MongoDB

ačkoli existuje několik výhod používání limitované kolekce, je třeba mít na paměti několik nevýhod:

  1. operace aktualizace se nezdaří, pokud aktualizace zvětší původní velikost kolekce s limitem MongoDB.

  2. v omezené sbírce nelze odstranit dokumenty. Odstranění nastane automaticky, když bylo dosaženo pevné velikosti a nejstarší dokument je odstraněn, aby se vytvořil prostor pro nový. Můžete však použít {emptycapped: theCollection} k odstranění všech dokumentů z omezené sbírky.

  3. nemůžete skartovat MongoDB limitovanou sbírku.

závěr

pokud se právě seznamujete s omezenými kolekcemi v MongoDB, můžete vidět, že se zcela liší od standardních kolekcí. Limitované kolekce nabízejí mnoho výhod pro velkokapacitní ukládání protokolů a vysoce výkonné aplikace, takže je důležité pochopit, jak fungují, a vědět, jak je používat. S pokyny uvedenými v tomto tutoriálu nebudete mít potíže s prací s MongoDB limitovanými sbírkami ve vašich vlastních aplikacích.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.