PHP'de MongoDB için CRUD işlemleri

İçindekiler
Web uygulamaları genellikle kalıcılık sistemlerine karşı gerçekleştirmeleri gereken dört temel işleme odaklanır veya veritabanları, bu işlemler bu ortam için geliştirmeyi öğrenirken anahtar olarak kabul edilir, Oluştur, Oku, Güncelle ve Sil Ayrıca şöyle bilinir REZİL İngilizce kısaltması için.
MongoDB sürücüsü sayesinde PHP, bu dört işlemi çok basit bir şekilde yapmamızı sağlar, ancak bir yönetici olmak İlişkisel olmayan veritabanlarıgibi ilişkisel bir sistem kullanıyormuşuz gibi her şeyi ele alma hatasına düşemeyiz. MySQL veya PostgreSQL.
GereksinimlerBu öğreticiyi takip etmek için bir sürümüne sahip olmamız gerekir. MongoDB için ilgili sürücüyü indirip etkinleştirmiş olmanın yanı sıra test ortamımızda PHP, bu gereksinimlerin nasıl karşılanacağı hakkında daha fazla bilgi için aşağıdaki öğreticiye göz atabilirsiniz.
MongoDB işlemlerde ve işlemlerde çok verimli olacak şekilde yaratılmıştır, bu sayede gerçek hayattaki sorunları performansı kaybetmeden çözebilirsiniz. A REZİL kendi içinde çok fazla işlem gücü gerektirmez, ancak binlerce istek bize geldiğinde Veri tabanı kısa sürede nasıl olduğunu görebileceğimiz yer MongoDB performansı korumamıza yardımcı olur.
Koleksiyonlar ve belgeler çok güçlü varlıklardır, çünkü tanımlanmış bir yapıya sahip olmadıklarından, temiz ve düzenli bir görüntü sağlayarak istediğimiz verileri saklayabiliriz, ayrıca ilişkisel modellerde ara sorguları bize götürebilecek basit sorgularda verilere erişebiliriz. birçok tablo.
NS veritabanları içinde MongoDB koleksiyonlar olarak bilinirler, bu nedenle onları koleksiyon olarak ele alamayız. veritabanları geleneksel, bir isimle bir farklılaştırıcı altında gruplandırılmış bir dizi belge olarak değilse.
Koleksiyon oluşturmaBir koleksiyon oluşturmak için herhangi bir özel komuta ihtiyacımız yok, sadece mevcut değilse seçtiğimiz aynı komutla, MongoDB Belirttiğimiz isimle yeni bir tane oluşturmaktan sorumlu olacak.
Bu basitlik, uygulamalarımıza yerleştirmemiz gereken kod miktarını azaltmanın yanı sıra işimizi de kolaylaştırıyor. Aşağıdaki resimde bir koleksiyon seçebileceğimiz örnek bir kod görelim. MongoDB:

Burada sınıf nesnesini ilk olarak nasıl yarattığımızı görüyoruz. Moğol (), bu, ilgili sürücüyü yüklerken, ardından yalnızca nesneyi kullanarak ve bir ad yazarak dahil edilir. Veri tabanı seçilir veya oluşturulur. Bu noktada dikkatli olmalıyız, çünkü MongoDB eğer bir hata döndürmez Veri tabanı yok, sadece yeni bir tane yaratacak, bu yüzden yazdığımız isimleri iki kez kontrol etmemiz gerekiyor.
Sonunda içinde bir koleksiyon oluşturabiliriz. Veri tabanı yönler olarak adlandırılır ve bununla operasyonlarımızı yürüteceğimiz temele sahip oluruz. REZİL.
Diğer işlemlerin yapılabilmesi için REZİL Önce verilere sahip olmalıyız, bu yüzden öğreneceğimiz ilk şey, teknik dilimize en uygun şekilde belgeler oluşturmak veya kayıt ekleri yapmaktır.
sürücü sayesinde MongoDBYeni kaydımız için yapı ve gerekli verilerle bir düzenleme veya dizi oluşturmamız ve ardından yöntemi çağırmamız yeterlidir. sokmak () bağlantı yöntemi. Tanımlı bir yapıya sahip olmamıza veya bunun için bir örüntü izlememize gerek yok, bir belgenin alanı varsa ve diğerinin yoksa, süreç etkilenmez.
Yukarıda bahsedilen işlemi açıklayan kaynak kodunu aşağıdaki resimde görelim:

Yöntemin bir alternatifi var sokmak () ve yöntem kayıt etmek (), fark şu ki kayıt etmek () benzersiz bir tanımlayıcı belirtilmişse ve mevcutsa, mevcut kayıt yeni verilerle güncellenecektir.
Geliştirici topluluğunda daha fazla çalışmayı öneriyorlar kayıt etmek () ne ile sokmak () yeniden kullanılabilecek kod üretmek, ancak karar her birinin elinde.
Varsayılan olarak ekleme yöntemi MongoDB eşzamansızdır, bu şu anlama gelir: Veri tabanı kaydı ekliyor veya güncelliyorsunuz PHP çökmeden yürütmesine devam ediyor. Bu davranışın sonucu, Veritabanı altyapısı çalışmasa bile uygulamanın daha hızlı çalışmasıdır.
Bu davranış bizim için her zaman yararlı olmayacağından, parametreyi ileterek onu senkron davranmaya zorlayabiliriz. güvenli işlemi yürütürken, bu neden olur PHP gelen cevabı bekle MongoDB talimatlarının yürütülmesine devam etmeden önce. parametre yapısı güvenli takip ediliyor:
$ collection-> insert ($ address, array ('safe' => true));

Varsayılan olarak ve biz aksini belirtmedikçe, MongoDB adı altındaki belgelerin birincil anahtarlarını otomatik olarak oluşturur. _İD, yaparken sokmak () eşzamanlı olarak, anahtar ayarlanır ve az önce eklediğimiz diziye yerleştirilir.
Yani benzersiz tanımlayıcının ne olduğunu bilmek istiyorsak, dizinin sadece bu özelliğine başvurmamız yeterli, bir önceki örneği takip edersek aşağıdakileri yapmamız yeterli olacaktır:
$ kimlik = $ koleksiyon ['_ kimlik'];

Şimdi ikinci operasyona geçiyoruz, yani elimizdeki belgeleri veya elimizdeki bilgileri okumak. veritabanları. Burada, doğrudan birincil anahtar için veya belgemizin diğer herhangi bir özellik kombinasyonu için sorgular yapabiliriz.
Aramayı yapmak için sadece yöntemi kullanıyoruz bulmak () ve buna filtreleyeceğimiz tüm elemanları içeren bir diziyi ileteceğiz. Aşağıdaki resimde birincil anahtar kullanan bir sorgu ve diğer belge özelliklerini kullanan bir sorgu görelim:

Burada dikkat edersek, birincil anahtara göre arama yapmak için yaptığımız ilk şey türünde bir nesne oluşturmaktır. Moğolistan ve bunun değerine şaşırıyorsunuz, bu her şeyin düzgün çalışması için anahtardır. Öte yandan, özellikler sorgulanırken, nesne oluşturmaya gerek kalmadan yalnızca değeri dizi içine yerleştirmek yeterlidir.
Varsayılan MongoDB bir eşleşme bulduğunda belgenin tamamını döndürür, bu nedenle ondan birden fazla veya birkaç veri istemiyorsak, onu, istediğimiz özelliklerin veya alanların bir dizisi olan ikinci bir parametrede belirtmemiz gerekir. , bunun nasıl yapılabileceğini aşağıdaki kodda görelim:
$ sonuç = $ koleksiyon-> findone (dizi ('_id' => $ kimlik), dizi ('ad', 'soyad'));

Önceki kodu yerleştirirken, sonuç değişkeni, arama kriterleriyle eşleşen belgenin yalnızca ad ve soyadı özelliklerini içeren bir diziye sahip olacaktır.
Şimdi üçüncü işleme geçiyoruz, bu zaten koleksiyonumuzda oluşturulmuş bir belgeyi güncellemek için, burada dikkatli olmalıyız, çünkü doğru formu yerleştirmezsek, güncelleme veya özellik eklemek yerine orijinal belgenin üzerine yazabiliriz. .
Karışıklığı önlemek için kullanılması tavsiye edilir. $ seti hangi bir operatör olduğunu söyleyen MongoDB parametre varsa gönderilen değerle güncelleneceği, yoksa oluşturulacağıdır. Bu, uygulamamızdaki hatalardan kaçınmamıza ve daha da iyisi, uygulamamıza istenen işlevselliği sağlamamıza olanak tanır. Bunun nasıl çalıştığını görelim:

BÜYÜT

Bu durumda şehir mülkünün değerini nasıl değiştirebileceğimizi o zaman anladık, ancak sicilde olmasaydı, orada zaten var olanı değiştirmeden üretilirdi.
yapabileceğimiz özel bir şey var MongoDB ve bu ilişkisel bir motorda yapılamaz ve belgelerimizin içine diziler ekleyin, bununla birlikte, aynı koleksiyonda bir arada bulunan diğer belgelerin genel yapısını etkilemek zorunda kalmadan ihtiyaçlarımız için giderek daha karmaşık ve eksiksiz belgeler oluşturabilmemiz için bir mülk içindeki değer listelerini ekleyebiliriz.
Bu son işlemdir, silme işlemi çok basittir, neredeyse eklemek veya güncellemek kadar veya daha fazlasıdır, sadece bir kriter veya silme filtresi ararız, onu bir diziye yükler ve yöntemi uygularız. kaldırmak ().
Aklımızda tutmamız gereken tek şey, MongoDB bu kritere uyan tüm belgeleri silecektir, bu nedenle yalnızca birini silmek istiyorsak özelliği kullanmalıyız. sadece bir ve içine yerleştirin NS. Bir belgeyi silmek için aşağıdaki kodu görelim:

Bununla bu öğreticiyi bitiriyoruz, basit ama işlevsel bir şekilde nasıl ekleyebileceğimizi gördük. REZİL gibi ilişkisel olmayan bir yapı üzerinde MongoDB itibaren PHP. Bunda ustalaşabilirsek, kullanıcılarımızı etkilememize yardımcı olacak yüksek performanslı ve çok esnek uygulamalar yaratmış olacağız.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave