Inhoudsopgave
Webapplicaties richten zich over het algemeen op vier basisbewerkingen die ze moeten uitvoeren tegen hun persistentiesysteem of: Databases, deze bewerkingen worden als essentieel beschouwd bij het leren ontwikkelen voor deze omgeving, verwijzen we naar: Maken, lezen, bijwerken en verwijderen ook gekend als CRUD voor zijn acroniem in het Engels.MongoDB dankzij de driver voor PHP, stelt ons in staat om deze vier bewerkingen op een zeer eenvoudige manier uit te voeren, maar als manager van Niet-relationele databases, we kunnen niet de fout maken om alle dingen te behandelen alsof we een relationeel systeem gebruiken zoals: MySQL of PostgreSQL.
VereistenOm deze tutorial te volgen, moeten we een versie hebben van MongoDB in onze testomgeving, naast het downloaden en activeren van de bijbehorende driver voor PHP, voor meer informatie over hoe u aan deze vereisten kunt voldoen, kunt u de volgende zelfstudie bekijken.
MongoDB is gemaakt om zeer efficiënt te zijn in transacties en bewerkingen, op deze manier kunt u echte problemen oplossen zonder prestatieverlies. EEN CRUD vereist op zich niet veel verwerkingskracht, maar als er duizenden verzoeken bij onze Database in een korte tijd is waar we kunnen zien hoe MongoDB helpt ons de prestaties te behouden.
Collecties en documenten zijn zeer krachtige entiteiten, omdat we bij gebrek aan een gedefinieerde structuur de gewenste gegevens kunnen opslaan en een schoon en geordend beeld kunnen behouden, daarnaast hebben we toegang tot gegevens in eenvoudige query's die in relationele modellen tussenliggende query's naar ons zouden kunnen leiden.
De Databases in MongoDB staan bekend als collecties, daarom kunnen we ze niet behandelen als: Databases traditioneel, zo niet als een reeks documenten die zijn gegroepeerd onder een differentiator met een naam.
Collectie makenOm een collectie te maken hebben we geen speciaal commando nodig, gewoon met hetzelfde commando dat we het selecteren als het niet bestaat, MongoDB Het zal verantwoordelijk zijn voor het maken van een nieuwe met de naam die we hebben opgegeven.
Deze eenvoud maakt ons werk gemakkelijker, naast het verminderen van de hoeveelheid code die we in onze applicaties moeten plaatsen. Laten we in de volgende afbeelding een voorbeeldcode zien waarmee we een collectie kunnen selecteren in MongoDB:
Hier zien we hoe we eerst het klasseobject maken Mongo (), dit is inbegrepen bij het installeren van het bijbehorende stuurprogramma, dan gewoon door het object te gebruiken en een naam in te typen van Database is geselecteerd of gemaakt. Op dit punt moeten we voorzichtig zijn, aangezien MongoDB het zal geen fout retourneren als de Database het bestaat niet, het zal gewoon een nieuwe maken, dus we moeten de namen die we schrijven dubbel controleren.
Eindelijk kunnen we een verzameling maken in de Database genaamd richtingen, en hiermee hebben we de basis waarop we onze operaties kunnen uitvoeren CRUD.
Om de andere handelingen van de CRUD We moeten eerst over gegevens beschikken, daarom zullen we eerst leren om documenten te maken of bijsluiters te maken, zoals het beste past bij onze technische taal.
Met dank aan de chauffeur MongoDBWe hoeven alleen maar een arrangement of array te maken, met de structuur en de benodigde gegevens voor ons nieuwe record en dan de methode aan te roepen invoegen () verbindingsmethode. We hoeven geen gedefinieerde structuur te hebben of er een patroon voor te volgen, als een document een veld heeft en een ander niet, wordt het proces niet beïnvloed.
Laten we in de volgende afbeelding de broncode bekijken die het bovengenoemde proces verklaart:
Er is een alternatief voor de methode: invoegen () en is de methode? sparen (), het verschil is dat sparen () als er een unieke identificator is opgegeven en deze bestaat, wordt de bestaande record bijgewerkt met de nieuwe gegevens.
In de ontwikkelaarsgemeenschap stellen ze voor om meer samen te werken met sparen () wat met? invoegen () om code te genereren die opnieuw kan worden gebruikt, maar de beslissing is in handen van iedereen.
Standaard is de invoegmethode in MongoDB asynchroon is, betekent dit dat terwijl de Database u het record invoegt of bijwerkt PHP het zet zijn uitvoering voort zonder te crashen. Het resultaat van dit gedrag is dat de toepassing sneller werkt, zelfs als de database-engine dat niet doet.
Omdat dit gedrag niet altijd nuttig voor ons zal zijn, kunnen we het dwingen zich synchroon te gedragen door de parameter door te geven veilig bij het uitvoeren van de bewerking zal dit leiden tot: PHP wacht op de reactie van MongoDB alvorens door te gaan met de uitvoering van zijn instructies. De parameterstructuur veilig is de volgende:
$ collectie-> invoegen ($ adres, array ('safe' => true));
Standaard en tenzij we anders aangeven, MongoDB genereert automatisch de primaire sleutels van de documenten onder de naam _ID kaart, bij het maken van een invoegen () synchroon wordt de sleutel ingesteld en geplaatst in de array die we zojuist hebben ingevoegd.
Dus als we willen weten wat de unieke identifier is, hoeven we alleen deze eigenschap van de array te raadplegen, als we het vorige voorbeeld volgen, volstaat het om het volgende te doen:
$ id = $ verzameling ['_ id'];
We gaan nu verder met de tweede operatie, namelijk het lezen van de informatie die we in onze documenten hebben of Databases. Hier kunnen we rechtstreeks query's maken voor de primaire sleutel of voor elke andere combinatie van eigenschappen van ons document.
Om de zoekopdracht uit te voeren, gebruiken we gewoon de methode vind een () en hieraan gaan we een array doorgeven met alle elementen die we gaan filteren. Laten we in de volgende afbeelding een query zien die een primaire sleutel gebruikt en een andere die andere documenteigenschappen gebruikt:
Als we hier opmerken, om te zoeken op primaire sleutel, is het eerste wat we doen een object van het type maken MongoId en je staat versteld van de waarde ervan, dit is de sleutel om alles goed te laten werken. Aan de andere kant is het bij het opvragen van eigenschappen alleen voldoende om de waarde in de array te plaatsen zonder objecten te hoeven maken.
Standaard MongoDB het zal het volledige document retourneren zodra het een overeenkomst heeft gevonden, dus als we er niet meer dan één of enkele gegevens van willen, moeten we het specificeren in een tweede parameter die een array is van de eigenschappen of velden die we willen , laten we in de volgende code kijken hoe dit kan:
$ resultaat = $ collectie-> findone (array ('_id' => $ id), array ('voornaam', 'achternaam'));
Bij het plaatsen van de vorige code heeft de resultaatvariabele een array die alleen de voor- en achternaam-eigenschappen van het document bevat die overeenkomen met de zoekcriteria.
We gaan nu naar de derde bewerking, dit is om een document bij te werken dat al in onze verzameling is gemaakt, hier moeten we voorzichtig zijn, want als we niet het juiste formulier plaatsen, kunnen we uiteindelijk het originele document overschrijven in plaats van een eigenschap bij te werken of toe te voegen .
Om verwarring te voorkomen, wordt aanbevolen om $ set dat is een operator die vertelt MongoDB dat als de parameter bestaat, deze wordt bijgewerkt met de verzonden waarde, en als deze niet bestaat, wordt deze gemaakt. Hierdoor kunnen we fouten in onze applicatie vermijden en nog beter kunnen we onze applicatie voorzien van een gewenste functionaliteit. Laten we eens kijken hoe dit werkt:
VERGROTEN
We hebben ons toen gerealiseerd hoe we de waarde van het stadseigendom in dit geval kunnen veranderen, maar als het niet in het register zou bestaan, zou het worden gegenereerd zonder te veranderen wat daar al bestaat.Er is iets speciaals dat we kunnen doen in MongoDB en dat kan niet worden gedaan in een relationele motor, en het is de mogelijkheid om voeg arrays toe in onze documenten, hiermee kunnen we zoeklijsten binnen een eigenschap toevoegen, zodat we steeds complexere en completere documenten voor onze behoeften kunnen genereren, allemaal zonder de algemene structuur van andere documenten die binnen dezelfde verzameling naast elkaar bestaan, te hoeven beïnvloeden.
Dit is de laatste bewerking, verwijderen is heel eenvoudig, bijna net zoveel of meer dan toevoegen of bijwerken, we zoeken gewoon naar een criterium of een verwijderingsfilter, laden het in een array en voeren de methode uit verwijderen ().
Het enige waar we rekening mee moeten houden is dat MongoDB verwijdert alle documenten die aan dit criterium voldoen, daarom moeten we de eigenschap gebruiken als we er maar één willen verwijderen eentje maar en plaats het in Waar. Laten we hieronder de code bekijken om een document te verwijderen:
Hiermee sluiten we deze tutorial af, we hebben op een eenvoudige maar functionele manier gezien hoe we een CRUD op een niet-relationele structuur zoals MongoDB van PHP. Als we dit onder de knie krijgen, zullen we hoogwaardige en zeer flexibele applicaties maken die ons zullen helpen indruk te maken op onze gebruikers.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een positief punt te geven