Drone
Legacy Member
Eerst en vooral ben ik geen SQL/Database expert dus het kan zijn dat ik hier en daar foute dingen zeg. Nu dat ik met een excuus ben begonnen mag ik zoveel onzin verkopen als ik wil. 
Wat is MongoDB?
In plaats van dat deze database records gaat opslaan in tabellen werkt MongoDB met documenten. Je kan een document vergelijken met een object in een programmeertaal. MongoDB gebruikt iets wat ze BSON noemen wat staat voor Binary JSON. De documenten kan je dan ook vergelijken met JSON objecten. Deze documenten zitten ook in een collectie zoals een record in een tabel zit.
Bijvoorbeeld:
Product
Omschrijving
Aantal
Labels
In MongoDB ziet dit er zo uit:
Ik denk dat de meeste dit wel eens in SQL hebben gemaakt. Voor labels zou je dus een extra tabel moeten maken met een FK naar product. In MongoDB kan je gewoon een collectie van Labels in het document bewaren.
Als je nu zit te denken: leuk, een database voor mensen die niet met relaties kunnen werken. Dit is ook wat ik dacht toen ik de eerste keer zag tot als ik "flexible schemas" zag staan.
Om terug te gaan naar ons product object. Wat als sommige producten geen omschrijving hebben? Wat als je de gebruiker van de software/webapp zelf zijn producten wil laten ontwerpen? Misschien hoeft hij helemaal geen prijs of geen labels. Om dit allemaal op te vangen in een SQL database is heel wat werk nodig.
In MongoDB kan je dit doen:
Dit geeft natuurlijk enorme flexibiliteit. Denk maar eens aan een CMS waar niet alle pagina's dezelfde eigenschappen hebben.
Om zelf MongoDB eens te proberen moet je de server eens downloaden. Als je deze opzet zie je een console venster en dan kan je met de juiste drivers met de database communiceren. Er zijn drivers voor php, ruby, java, ...
Er zijn nog voordelen aan MongoDB en ook nadelen. Als je meer wil weten over MongoDB bekijk dan eens de volgende links:
MongoDB website: Home - MongoDB - 10gen Confluence
MongoDB video op ruby conferentie: ChicagoRuby on Vimeo
Javascript MongoDB console: Try MongoDB
Dacht de post iets korter te houden. Dus voor die dat mijn ramblings tot hier hebben gelezen, proficiat!

Wat is MongoDB?
In plaats van dat deze database records gaat opslaan in tabellen werkt MongoDB met documenten. Je kan een document vergelijken met een object in een programmeertaal. MongoDB gebruikt iets wat ze BSON noemen wat staat voor Binary JSON. De documenten kan je dan ook vergelijken met JSON objecten. Deze documenten zitten ook in een collectie zoals een record in een tabel zit.
Bijvoorbeeld:
Product
Omschrijving
Aantal
Labels
In MongoDB ziet dit er zo uit:
Code:
Auto
{
Omschrijving : "Voertuig op 4 wielen",
Aantal: 15,
Labels: ["Voertuig", "Groen", "Diesel"]
}
Ik denk dat de meeste dit wel eens in SQL hebben gemaakt. Voor labels zou je dus een extra tabel moeten maken met een FK naar product. In MongoDB kan je gewoon een collectie van Labels in het document bewaren.
Als je nu zit te denken: leuk, een database voor mensen die niet met relaties kunnen werken. Dit is ook wat ik dacht toen ik de eerste keer zag tot als ik "flexible schemas" zag staan.
Om terug te gaan naar ons product object. Wat als sommige producten geen omschrijving hebben? Wat als je de gebruiker van de software/webapp zelf zijn producten wil laten ontwerpen? Misschien hoeft hij helemaal geen prijs of geen labels. Om dit allemaal op te vangen in een SQL database is heel wat werk nodig.
In MongoDB kan je dit doen:
Code:
Auto
{
Omschrijving : "Voertuig op 4 wielen",
Aantal: 15,
Labels: ["Voertuig", "Groen", "Diesel"]
}
Fiets
{
Omschrijving : "Voertuig op 2 wielen",
Type: "Mountainbike",
Prijs: 15,45
}
Dit geeft natuurlijk enorme flexibiliteit. Denk maar eens aan een CMS waar niet alle pagina's dezelfde eigenschappen hebben.
Om zelf MongoDB eens te proberen moet je de server eens downloaden. Als je deze opzet zie je een console venster en dan kan je met de juiste drivers met de database communiceren. Er zijn drivers voor php, ruby, java, ...
Er zijn nog voordelen aan MongoDB en ook nadelen. Als je meer wil weten over MongoDB bekijk dan eens de volgende links:
MongoDB website: Home - MongoDB - 10gen Confluence
MongoDB video op ruby conferentie: ChicagoRuby on Vimeo
Javascript MongoDB console: Try MongoDB
Dacht de post iets korter te houden. Dus voor die dat mijn ramblings tot hier hebben gelezen, proficiat!
