Nejpopulárnější dokumentová databáze. Flexibilní schéma.
Instalace¶
docker run -d –name mongo -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=secret mongo:7
CRUD¶
db.users.insertOne({name:’Jan’,email:’[email protected]’,age:30}) db.users.find({age:{$gt:25}}) db.users.updateOne({name:’Jan’},{$set:{age:31}}) db.users.deleteOne({name:’Jan’})
Schema¶
- Embed — 1:1, 1:few
- Reference — 1:many, many:many
- Denormalizace OK
Indexy¶
db.users.createIndex({email:1},{unique:true}) db.orders.createIndex({userId:1,createdAt:-1})
Schema design¶
Při návrhu MongoDB schématu rozhodujte mezi embedding a referencing na základě vztahů mezi daty. Embedding (vnořené dokumenty) je ideální pro data, která se čtou společně — například uživatel s jeho adresami. Referencing (odkazy přes ObjectId) použijte pro many-to-many vztahy nebo dokumenty, které rostou neomezeně.
MongoDB podporuje validaci schématu pomocí JSON Schema, což umožňuje vynutit datové typy a povinná pole i v dokumentové databázi. Pro produkční nasazení vždy zapněte autentizaci, nastavte replica set pro vysokou dostupnost a monitorujte výkon pomocí mongostat a mongotop. Atlas (managed MongoDB) nabízí automatické škálování, zálohy a monitoring bez potřeby správy infrastruktury.
MongoDB pro flexibilní data¶
Rapid prototyping, CMS, katalogy.