MongoDB Grunnkurs 2018

  • 19. – 21. Mars
  • 28.-30. April
  • 28. – 30. Mai
  • 12.-14. Juni
  • 22.-24. August
  • 19.-21. November

Bedriftsinterne kurs

ITFakultetet.no holder også bedriftsinterne kurs – dvs. kurs hos dere på datoer som passer for dere. Hvis dere er 3 eller flere deltakere, kan dette lønne seg. Send en mail til kurs@itfakultetet.no for mer informasjon.

 

 

MongoDB Grunnkurs 2017

  • 27. Februar – 1. Mars
  • 24.-26. April
  • 26.-28. Juni
  • 29.-31. August
  • 16.-18. Oktober
  • 28.-30. November

Bedriftsinterne kurs

ITFakultetet.no holder også bedriftsinterne kurs – dvs. kurs hos dere på datoer som passer for dere. Hvis dere er 3 eller flere deltakere, kan dette lønne seg. Send en mail til kurs@itfakultetet.no for mer informasjon.

Replikering av MongoDB-databaser foregår via en topologi som kalles et replica set. Replica sets distribuerer data over flere maskiner slik at man oppnår:

  • Redundancy – data er tilgjengelig fra flere maskiner
  • Automatisk failover – hvis en maskin feiler, tar en annen over

Dette sikrer at data er tilgjenglige hvis man får feil på maskiner eller netverk.

I tillegg brukes replikering som en metode til å skalere opp lesing fra databasen. Hvis man har en lese-intensiv applikasjon, som f.eks. er vanlig med internett-applikasjoner, kan man spre lesingen over flere maskiner i en klynge med replica set.

Replica sets består av én primærnode og en eller flere sekundærnoder. Primærnoden kan foreta både lese og skriveoperasjoner, mens sekundærnoden(e) kun foretar leseoperasjoner (read-only). Det som er unikt med replica sets er at de foretar en automatisk failover. Hvis primærnoden går ned, forfremmer klyngen automatisk en av sekundeærnodene til ny primærnode. Når den tidligere primærnoden er operativ igjen, vil den bli tildelt rolle som sekundærnode. Bildet under illustrerer dette scenariet:

Installere Mongo og Mongod

MongoDB er en dokumentbasert, såkalt nosql-database. Det vil si at data ikke lagres i tabeller og rader som i en relasjonell database, som f.eks. MySql, men i objekter, i MongoDBs tilfelle som bson-ojekter (bson = binær json). Dette gjør databasen spesielt egnet til objektorienterte programmeringsspråk, hvor man slipper å gå veien om en såkalt ORM (Object Relational Mapper). ORMs er kjent for å skalere dårlig, og MongoDB brukes spesielt innenfor det som kalles Big Data, bl.a. til å analysere loggfiler fra webservere. (mer…)

Gitt at en webserver og php allerede er installert, kan mongo instaleres via pecl, slik

# pecl install mongo

Hvis alt går som det skal, får du disse meldingene:

Build process completed successfully
Installing ‘/usr/lib/php/modules/mongo.so’
install ok: channel://pecl.php.net/mongo-1.0.4
You should add “extension=mongo.so” to php.ini

Neste skritt er å sette inn linjen extension=mongo.so i filen: php.ini

I en Ubuntu-installasjon med Apache2, finner vi php.ini her, og kan redigere den, f.eks. med vim:

# vim /etc/php5/apache2/php.ini

Restart Apache for å effektuere endringene, og mongodb er tilgjengelig fra php-skript.

 

 

 

 

Her er et enkelt php-skript som kobler seg til en Mongo-database og setter inn et par dokumenter i en samling og lister dem opp etterpå:

<?php
error_reporting(E_ALL);
ini_set(‘display_errors’, ‘1’);

header(“Content-type: text/plain”);

$connection = new Mongo();
$db = $connection->mydb;

$collection = $db->mycollection;
$myobj = array(“first_name” => “John”, “last_name” => “Doe”, “age” => 30);
$myobj2 = array(“first_name” => “Jane”, “last_name” => “Doe”, “age” => 27);
$collection->insert($myobj);
$collection->insert($myobj2);

$cursor = $collection->find();
foreach($cursor as $result)
{
echo “Name: ” . $result[“last_name”] . “, ” . $result[“first_name”] . “\n”;
echo “Age: ” . $result[“age”] . “\n\n”;
}

//$db->drop();
$connection->close();
?>