Съдържание
Уеб приложенията обикновено се фокусират върху четири основни операции, които трябва да извършат срещу тяхната система за устойчивост или Бази данни, тези операции се считат за ключови, когато се научим да се развиваме за тази среда, визираме Създаване, четене, актуализиране и изтриване също известен като ГРУБ за съкращението му на английски език.MongoDB благодарение на неговия драйвер за PHP, ни позволява да изпълняваме тези четири операции по много прост начин, но като мениджър на Нерелационни бази данни, не можем да изпаднем в грешката да третираме всички неща така, сякаш използваме релационна система като напр MySQL или PostgreSQL.
ИзискванияЗа да следваме този урок, трябва да имаме версия на MongoDB в нашата тестова среда, в допълнение към изтеглянето и активирането на съответния драйвер за PHP, за повече информация как да отговорите на тези изисквания можете да разгледате следния урок.
MongoDB е създаден, за да бъде много ефективен при транзакции и операции, по този начин можете да решавате проблеми от реалния живот, без да губите производителност. А ГРУБ не изисква много процесорна мощност сама по себе си, но когато хиляди заявки се появят на нашите База данни за кратко време можем да видим как MongoDB ни помага да поддържаме производителност.
Колекциите и документите са много мощни обекти, тъй като при липса на определена структура можем да съхраняваме данните, които искаме, за да поддържаме чисто и подредено изображение, освен това можем да осъществяваме достъп до данни в прости заявки, които в релационните модели биха могли да ни поднасят междинни заявки. Много таблици.
The Бази данни в MongoDB са известни като колекции, поради което не можем да ги третираме като Бази данни традиционен, ако не като набор от документи, които са групирани под диференциатор с име.
Създаване на колекцияЗа да създадем колекция, не се нуждаем от специална команда, просто със същата команда, която я избираме, ако тя не съществува, MongoDB Той ще отговаря за създаването на нов с името, което сме посочили.
Тази простота улеснява работата ни, освен че намалява количеството код, което трябва да поставим в нашите приложения. Нека видим на следващото изображение примерен код, с който можем да изберем колекция MongoDB:
Тук виждаме как първо създаваме обекта на класа Монго (), това се включва при инсталиране на съответния драйвер, след това просто чрез използване на обекта и въвеждане на име на База данни е избрано или създадено. В този момент трябва да бъдем внимателни, тъй като MongoDB няма да върне грешка, ако База данни той не съществува, той просто ще създаде нов, така че трябва да направим двойна проверка на имената, които пишем.
Накрая можем да създадем колекция вътре в База данни наречени направления и с това ще имаме базата, на която да извършваме операциите си ГРУБ.
За да се извършват другите операции на ГРУБ Първо трябва да имаме данни, затова първото нещо, което ще научим, е да създаваме документи или да правим вмъквания на записи, което най -добре отговаря на нашия технически език.
Благодаря на шофьора MongoDBПросто трябва да създадем подредба или масив, със структурата и необходимите данни за новия ни запис и след това да извикаме метода вмъкване () метод на свързване. Не е необходимо да имаме определена структура или да следваме модел за нея, ако документът има поле, а друг няма, процесът не се влияе.
Нека видим на следното изображение изходния код, който обяснява гореспоменатия процес:
Има алтернатива на метода вмъкване () и е методът запази (), разликата е в това запази () ако е посочен уникален идентификатор и той съществува, съществуващият запис ще бъде актуализиран с новите данни.
В общността на програмисти те предлагат да се работи повече запази () с какво вмъкване () за генериране на код, който може да се използва повторно, но решението е в ръцете на всеки един.
По подразбиране методът на вмъкване в MongoDB е асинхронен, това означава, че докато База данни вмъквате или актуализирате записа PHP той продължава изпълнението си без срив. Резултатът от това поведение е, че приложението работи по -бързо, дори ако двигателят на базата данни не работи.
Тъй като това поведение не винаги ще бъде полезно за нас, можем да го принудим да се държи синхронно, като предаде параметъра безопасно при изпълнение на операцията това ще причини PHP изчакайте отговора от MongoDB преди да продължи с изпълнението на инструкциите си. Структурата на параметрите безопасно е следното:
$ collection-> insert ($ адрес, масив ('safe' => true));
По подразбиране и освен ако не посочим друго, MongoDB автоматично генерира първичните ключове на документите под името _документ за самоличност, когато правите а вмъкване () синхронно ключът е зададен и поставен в масива, който току -що вмъкнахме.
Така че, ако искаме да знаем какъв е уникалният идентификатор, трябва само да се консултираме с това свойство на масива, ако следваме предишния пример, би било достатъчно само да направим следното:
$ id = $ collection ['_ id'];
Сега преминаваме към втората операция, която е да прочетем информацията, която имаме в нашите документи или Бази данни. Тук можем да правим заявки за първичния ключ директно или за всяка друга комбинация от свойства на нашия документ.
За да извършим търсенето, просто използваме метода findone () и към това ще предадем масив с всички елементи, които ще филтрираме. Нека видим на следващото изображение заявка, използваща първичен ключ, и друга, използваща други свойства на документа:
Ако забележим тук, за да търсим по първичен ключ, първото нещо, което правим, е да създадем обект от типа MongoId и вие сте изумени от стойността му, това е ключът, за да работи всичко правилно. От друга страна, при запитване за свойства е достатъчно само да поставите стойността в масива, без да се налага да създавате обекти.
По подразбиране MongoDB той ще върне пълния документ, след като намери съвпадение, така че ако не искаме повече от една или няколко данни от него, трябва да го посочим във втори параметър, който е масив от свойствата или полетата, които искаме , нека видим в следния код как това може да стане:
$ result = $ collection-> findone (array ('_id' => $ id), array ('first name', 'last name'));
Когато поставяте предишния код, променливата резултат ще има масив, който съдържа само свойствата на името и фамилията на документа, които отговарят на критериите за търсене.
Сега преминаваме към третата операция, това е за актуализиране на документ, вече създаден в нашата колекция, тук трябва да бъдем внимателни, защото ако не поставим правилната форма, можем да презапишем оригиналния документ, вместо да актуализираме или добавим свойство .
За да се избегне объркване, се препоръчва да се използва $ set който е оператор, който казва MongoDB че ако параметърът съществува, той ще бъде актуализиран с изпратената стойност, а ако не съществува, ще бъде създаден. Това ни позволява да избегнем грешки в нашето приложение и още по -добре ни позволява да предоставим на нашето приложение желаната функционалност. Нека да видим как работи това:
Увеличете
Тогава разбрахме как можем да променим стойността на градския имот в този случай, но ако той не съществува в регистъра, той би бил генериран, без да променя това, което вече съществува там.Има нещо специално, в което можем да направим MongoDB и това не може да се направи в релационен двигател и е възможността за добавете масиви в нашите документи, с това можем да добавим списъци със стойности в дадено свойство, така че да можем да генерираме все по -сложни и пълни документи за нашите нужди, всички без да се налага да влияем върху общата структура на други документи, които съществуват съвместно в една и съща колекция.
Това е последната операция, изтриването е много просто, почти толкова или повече от добавяне или актуализиране, просто търсим критерий или филтър за изтриване, зареждаме го в масив и изпълняваме метода Премахване ().
Единственото, което трябва да имаме предвид е, че MongoDB ще изтрием всички документи, които отговарят на този критерий, затова, ако искаме да изтрием само един, трябва да използваме свойството само един и го поставете в Вярно. Нека видим по -долу кода за изтриване на документ:
С това приключваме този урок, видяхме по основен, но функционален начин как можем да включим a ГРУБ върху нерелационна структура като MongoDB от PHP. Ако успеем да овладеем това, ще създадем високопроизводителни и много гъвкави приложения, които ще ни помогнат да впечатлим нашите потребители.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка