
MongoDB är en populär dokumentdatabas som använder JSON-liknande dokument för att lagra data. Det är en NoSQL-databas, vilket betyder att den inte använder SQL (Structured Query Language) för att söka och manipulera data. Istället använder den en egen sökfråga som kallas MongoDB Query Language (MQL).
För att ansluta till och interagera med en MongoDB-databas från en PHP-applikation kan du använda den medföljande MongoDB PHP Extension. Detta är en tilläggsmodul för PHP som kan aktiveras genom att lägga till ett par rader kod i PHP-konfigurationsfilen. När du har aktiverat MongoDB PHP Extension kan du använda en mängd olika funktioner i PHP för att ansluta till databasen, söka efter data och utföra andra åtgärder.
Om du vill ha mer avancerad stöd för att interagera med MongoDB från PHP kan du använda MongoDB PHP Library. Detta är en samling PHP-klasser och funktioner som ger dig mer möjligheter att hantera din MongoDB-databas, inklusive att skapa komplexa sökfrågor och utföra aggregering. Du kan ladda ner och installera MongoDB PHP Library genom att använda Composer, en verktygslåda för PHP-pakethantering.
Installera MongoDB i PHP
För att komma igång med MongoDB behöver du först aktivera tilläggsmodulen MongoDB PHP Driver (1) och sen även utöka stödet med MongoDB PHP Library (2).
Du behöver också en MongoDB Server som faktiskt hanterar databasen. Få webbhotell erbjuder detta och varför du lär behöva använda dig av en VPS eller dedikerad server för att få full kompabilitet.
1. Installera MongoDB PHP Driver
För att aktivera stöd för MongoDB i PHP behöver du aktivera tilläggsmodulen i php.ini och se till så modulen finns nedladdad. Det ger dig det grundläggande stödet för MongoDB.
Tilläggsmodulen följer inte med PHP som standard så du behöver lägga till den genom att ladda ner den senaste versionen från GitHub. Kör du en utvecklingsserver på Windows med PHP kan du bara ladda ner filen php_mongodb.dll och placera i php/ext katalogen tillsammans med de andra tilläggsmodulerna. Därefter kan du aktivera modulen genom att lägga till följande i php.ini (förslagsvis en bit ner i filen där du hittar alla andra tilläggsmoduler).
extension=php_mongodb.dll
Du kan läsa den officiella dokumentationen för att installera PHP Driver för Windows, PECL (Linux & MacOS).

Om du har ett webbhotellskonto krävs det att webbhotellet har stöd för att aktivera MongoDB genom kontrollpanelen. Inget webbhotell erbjuder dig att installera tilläggsmoduler själv om du har en delad server men vissa kan på begäran lägga till det medan andra webbhotell redan erbjuder det från start.
Om du t.ex. har ett webbhotell med kontrollpanelen cPanel kan du konfigurera din PHP-version själv och välja vilka tilläggsmoduler för PHP som du vill aktivera. Här går det ofta att aktivera stöd för MongoDB.
Det är inte svårare än att klicka i checkrutan för MongoDB och spara PHP-versionen så aktiveras stödet utan att du behöver ladda ner och installera MongoDB PHP Driver själv.
2. Ladda ner MongoDB PHP Library
För att utöka stödet för MongoDB så du får ett komplett stöd behöver grundstödet som erbjuds i tilläggsmodulen utökas med hjälp av MongoDB PHP Library.
För att utnyttja MongoDB PHP Library behöver du ha filerna i varje PHP-projekt du utvecklar som klasser du laddar in i början av PHP-filer där du vill använda MongoDB. Här är ett exempel:
<?php
// Ladda in MongoDB PHP Library
require_once __DIR__ . '/vendor/autoload.php';
// Kod för att kommunicera med MongoDB här efter
?>
Exempelkod för MongoDB
Här är ett exempel på hur du ansluter och kommunicerar med en MongoDB-databas med hjälp av MongoDB PHP Library.
<?php
// Ladda in Composer-autoloadern
require_once 'vendor/autoload.php';
// Anslut till databasen
$client = new MongoDB\Client("mongodb://localhost:27017");
// Välj en samling
$collection = $client->database->collection;
// Hämta alla dokument från samlingen
$documents = $collection->find();
foreach ($documents as $document) {
echo $document['name'], "\n";
}
?>
I det här exemplet skapar vi först en ny instans av MongoDB\Client-klassen, som används för att ansluta till databasen. Sedan väljer vi en samling att arbeta med, och använder find()-metoden för att hämta alla dokument från samlingen. Vi loopar sedan igenom dokumenten och skriver ut värdet av fältet ”name” för varje dokument.
Observera att detta förutsätter att du har både tilläggsmodulen installerade och aktiverad i php.ini, samt att du laddat MongoDB PHP Library och kan inkludera autoload.php.
MondoDB Server
MongoDB Server är den huvudsakliga komponenten i MongoDB-plattformen som ansvarar för att lagra och hantera data. Det är en databasserver som använder en dokumentorienterad datamodell, vilket innebär att data lagras i form av dokument med strukturerade datafält.
MongoDB Server kan köras på många olika plattformar, inklusive Linux, Windows och macOS, och stöder olika programmeringsspråk, inklusive PHP, Java, Python och Ruby. Du kan ansluta till MongoDB Server från din applikation genom att använda en MongoDB-klient, till exempel MongoDB PHP Library eller MongoDB Java Driver.
MongoDB Server har en mängd olika funktioner som gör det lättare att hantera och analysera data, inklusive indexering, replikering, skalbarhet och aggregering. Du kan läsa mer om MongoDB Server i dokumentationen för MongoDB.
Det är fritt fram att ladda ner och köra MongoDB Community Server. Det är dock inte något som normalt sett går på vanliga webbhotellskonton. Du behöver därför minst en VPS som kan agera databas alternativt att servern är en komplett webbserver med MongoDB vilket även lär resultera i snabbare responstider då databasen då finns på samma fysiska server.