Rumah pembangunan bahagian belakang tutorial php Gunakan PHP dan MongoDB untuk melaksanakan pangkalan data NoSQL untuk memenuhi keperluan pengguna yang berbeza

Gunakan PHP dan MongoDB untuk melaksanakan pangkalan data NoSQL untuk memenuhi keperluan pengguna yang berbeza

Jun 26, 2023 pm 11:39 PM
php nosql mongodb

Pangkalan data NoSQL (Bukan Sahaja SQL) ialah sejenis pangkalan data yang telah berkembang pesat dalam beberapa tahun kebelakangan ini Berbanding dengan pangkalan data hubungan tradisional, ia mempunyai kebolehskalaan dan prestasi yang lebih baik, serta menyokong lebih banyak jenis data dan kaedah penyimpanan data. Antaranya, MongoDB ialah pangkalan data NoSQL yang menggunakan model pangkalan data dokumen dan digunakan secara meluas dalam aplikasi web, aplikasi mudah alih, peranti Internet of Things dan bidang lain.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis operasi asas pangkalan data MongoDB, dan menunjukkan cara memenuhi keperluan pengguna yang berbeza melalui contoh.

1. Operasi asas pangkalan data MongoDB

Pangkalan data MongoDB menggunakan model data dokumen, dan unit data asasnya ialah dokumen (dokumen), yang serupa dengan baris (baris) dalam pangkalan data hubungan. Setiap dokumen boleh mengandungi jenis data yang berbeza, seperti rentetan, integer, boolean, tatasusunan, tarikh, dsb. Dokumen diwakili dalam format JSON dan disimpan dalam koleksi MongoDB.

1. Sambung ke pangkalan data MongoDB

Sebelum menggunakan MongoDB, anda perlu memasang sambungan pemacu MongoDB. Ini boleh dicapai dengan menetapkan fungsi dl() dalam PHP, atau anda boleh memuat turun terus sambungan MongoDB dan memasangnya secara manual.

Kod untuk menyambung ke pangkalan data MongoDB adalah seperti berikut:

<?php
$mongo_server = "mongodb://localhost:27017";
$mongo_connection = new MongoClient($mongo_server);
?>
Salin selepas log masuk

Antaranya, $mongo_server ialah rentetan sambungan pangkalan data MongoDB, dan $mongo_connection ialah objek sambungan MongoDB.

2. Pilih pangkalan data dan koleksi

Sebelum menggunakan MongoDB, anda perlu memilih pangkalan data dan koleksi yang anda mahu kendalikan. Kod untuk memilih pangkalan data adalah seperti berikut:

<?php
$mongo_db = $mongo_connection->selectDB("mydb");
?>
Salin selepas log masuk

Antaranya, $mongo_db ialah objek pangkalan data yang dipilih, dan mydb ialah nama pangkalan data.

Kod untuk memilih koleksi adalah seperti berikut:

<?php
$mongo_collection = $mongo_db->selectCollection("mycollection");
?>
Salin selepas log masuk

Antaranya, $mongo_collection ialah objek koleksi yang dipilih, dan mycollection ialah nama koleksi. Jika koleksi tidak wujud, ia akan dibuat secara automatik.

3. Masukkan dokumen

Kod untuk memasukkan dokumen menggunakan MongoDB adalah seperti berikut:

<?php
$document = array(
   "title" => "MongoDB Tutorial",
   "description" => "This is a tutorial for MongoDB database",
   "by_user" => "John Doe",
   "url" => "http://www.mongodb.com",
   "tags" => array("mongodb", "database", "NoSQL"),
   "likes" => 100
);

$mongo_collection->insert($document);
?>
Salin selepas log masuk

Antaranya, $document ialah dokumen yang akan disisipkan, yang boleh mengandungi pelbagai medan dan nilai.

4. Dokumen pertanyaan

Kod untuk pertanyaan dokumen menggunakan MongoDB adalah seperti berikut:

<?php
$criteria = array("likes" => array('$gt' => 50));
$cursor = $mongo_collection->find($criteria);
foreach($cursor as $document)
{
   echo $document["title"] . " - " . $document["url"] . "<br/>";
}
?>
Salin selepas log masuk

Antaranya, $kriteria ialah syarat penapisan dan $kursor ialah set hasil pertanyaan yang dikembalikan. Untuk melintasi set hasil, anda boleh menggunakan gelung foreach.

5. Kemas kini dokumen

Kod untuk mengemas kini dokumen menggunakan MongoDB adalah seperti berikut:

<?php
$criteria = array("title" => "MongoDB Tutorial");
$newdata = array('$set' => array("description" => "This is an updated tutorial"));
$mongo_collection->update($criteria, $newdata, array("multiple" => true));
?>
Salin selepas log masuk

Antaranya, $kriteria ialah syarat penapisan dokumen yang akan dikemas kini, $newdata ialah medan dan nilai yang akan dikemas kini, dan parameter ketiga menunjukkan sama ada untuk mengemas kini berbilang dokumen.

6. Padam dokumen

Kod untuk memadam dokumen menggunakan MongoDB adalah seperti berikut:

<?php
$criteria = array("likes" => array('$lt' => 50));
$mongo_collection->remove($criteria);
?>
Salin selepas log masuk

Antaranya, $kriteria ialah syarat penapisan dokumen yang hendak dipadam.

2. Contoh Demonstrasi

Berdasarkan operasi asas di atas, kami dapat merealisasikan keperluan pengguna yang berbeza.

1. Keperluan pengguna biasa

Andaikan ada sistem pengurusan maklumat buku yang perlu melaksanakan fungsi berikut:

(1) Tambah maklumat buku

(2) Maklumat buku pertanyaan

(3) Kemas kini maklumat buku

(4 )Padam maklumat buku

Pengguna sistem ini adalah pengguna biasa dan tidak memerlukan log masuk pengguna dan kawalan kebenaran. Kod untuk menggunakan MongoDB untuk mencapai keperluan di atas adalah seperti berikut:

<?php
$mongo_server = "mongodb://localhost:27017";
$mongo_connection = new MongoClient($mongo_server);
$mongo_db = $mongo_connection->selectDB("mydb");
$mongo_collection = $mongo_db->selectCollection("books");

//添加图书信息
$document = array(
   "title" => "PHP and MongoDB Web Development",
   "author" => "Jason",
   "publisher" => "O'Reilly Media",
   "ISBN" => "978-1491903037",
   "price" => 39.98,
   "pages" => 272
);
$mongo_collection->insert($document);

//查询图书信息
$criteria = array("price" => array('$lt' => 50));
$cursor = $mongo_collection->find($criteria);
foreach($cursor as $document)
{
   echo $document["title"] . " - " . $document["author"] . "<br/>";
}

//更新图书信息
$criteria = array("title" => "PHP and MongoDB Web Development");
$newdata = array('$set' => array("price" => 45.99));
$mongo_collection->update($criteria, $newdata, array("multiple" => true));

//删除图书信息
$criteria = array("ISBN" => "978-1491903037");
$mongo_collection->remove($criteria);
?>
Salin selepas log masuk

2 Keperluan pentadbir

Andaikan terdapat sistem pengurusan blog yang perlu melaksanakan fungsi berikut:

(1) Tambah blog

(2) Senarai blog pertanyaan

(3 ) Edit blog

(4) Padam blog

Pengguna sistem ini dibahagikan kepada pengguna biasa dan pentadbir perlu log masuk dan melakukan kawalan kebenaran. Kod untuk melaksanakan fungsi di atas menggunakan PHP dan MongoDB adalah seperti berikut:

<?php
$mongo_server = "mongodb://localhost:27017";
$mongo_connection = new MongoClient($mongo_server);
$mongo_db = $mongo_connection->selectDB("mydb");

//登录验证
$username = "admin";
$password = "admin";
$users_collection = $mongo_db->selectCollection("users");
$criteria = array("username" => $username, "password" => md5($password));
$user = $users_collection->findOne($criteria);
if(empty($user) || $user["role"] != "admin")
{
   echo "Access denied!";
   exit;
}

//选择博客集合
$blogs_collection = $mongo_db->selectCollection("blogs");

//添加博客
$blog = array(
   "title" => "MongoDB Tutorial",
   "content" => "This is a tutorial for MongoDB database"
);
$blogs_collection->insert($blog);

//查询博客列表
$cursor = $blogs_collection->find();
foreach($cursor as $blog)
{
   echo $blog["title"] . " - " . $blog["content"] . "<br/>";
}

//编辑博客
$criteria = array("title" => "MongoDB Tutorial");
$newdata = array('$set' => array("content" => "This is an updated tutorial"));
$blogs_collection->update($criteria, $newdata, array("multiple" => true));

//删除博客
$criteria = array("title" => "MongoDB Tutorial");
$blogs_collection->remove($criteria);
?>
Salin selepas log masuk

Antaranya, $username dan $password ialah nama pengguna dan kata laluan pentadbir, $users_collection ialah objek koleksi pengguna, dan $role ialah peranan pengguna.

3 Ringkasan

Artikel ini memperkenalkan secara terperinci operasi asas melaksanakan pangkalan data NoSQL menggunakan PHP dan MongoDB, dan menunjukkan cara memenuhi keperluan pengguna yang berbeza melalui contoh. Gabungan PHP dan MongoDB boleh menyediakan penyelesaian penyimpanan data yang cekap dan berskala untuk bidang pembangunan seperti aplikasi web, aplikasi mudah alih dan peranti Internet of Things.

Atas ialah kandungan terperinci Gunakan PHP dan MongoDB untuk melaksanakan pangkalan data NoSQL untuk memenuhi keperluan pengguna yang berbeza. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Terangkan ungkapan perlawanan (Php 8) dan bagaimana ia berbeza dari suis. Terangkan ungkapan perlawanan (Php 8) dan bagaimana ia berbeza dari suis. Apr 06, 2025 am 12:03 AM

Dalam Php8, ungkapan perlawanan adalah struktur kawalan baru yang mengembalikan hasil yang berbeza berdasarkan nilai ungkapan. 1) Ia sama dengan pernyataan suis, tetapi mengembalikan nilai dan bukannya blok pernyataan pelaksanaan. 2) Ekspresi perlawanan secara ketat (===), yang meningkatkan keselamatan. 3) Ia mengelakkan kemungkinan ketinggalan dalam penyataan suis dan meningkatkan kesederhanaan dan kebolehbacaan kod.

Apakah pemalsuan permintaan lintas tapak (CSRF) dan bagaimana anda melaksanakan perlindungan CSRF di PHP? Apakah pemalsuan permintaan lintas tapak (CSRF) dan bagaimana anda melaksanakan perlindungan CSRF di PHP? Apr 07, 2025 am 12:02 AM

Dalam PHP, anda boleh mencegah serangan CSRF dengan menggunakan token yang tidak dapat diramalkan. Kaedah khusus termasuk: 1. Menjana dan membenamkan token CSRF dalam bentuk; 2. Sahkan kesahihan token semasa memproses permintaan.

Bagaimanakah anda dapat mengelakkan kelas daripada dilanjutkan atau kaedah yang ditindas dalam PHP? (kata kunci akhir) Bagaimanakah anda dapat mengelakkan kelas daripada dilanjutkan atau kaedah yang ditindas dalam PHP? (kata kunci akhir) Apr 08, 2025 am 12:03 AM

Dalam PHP, kata kunci akhir digunakan untuk mencegah kelas daripada diwarisi dan kaedah ditimpa. 1) Apabila menandakan kelas sebagai muktamad, kelas tidak boleh diwarisi. 2) Apabila menandakan kaedah sebagai muktamad, kaedah itu tidak boleh ditulis semula oleh subkelas. Menggunakan kata kunci akhir memastikan kestabilan dan keselamatan kod anda.

Huraikan tujuan dan penggunaan operator ... (splat) dalam argumen fungsi PHP dan array membongkar. Huraikan tujuan dan penggunaan operator ... (splat) dalam argumen fungsi PHP dan array membongkar. Apr 06, 2025 am 12:07 AM

Pengendali ... (Splat) dalam PHP digunakan untuk membongkar parameter fungsi dan tatasusunan, meningkatkan kesederhanaan dan kecekapan kod. 1) Parameter Fungsi Membongkar: Lulus elemen array sebagai parameter ke fungsi. 2) Array Unpacking: Buka array ke array lain atau sebagai parameter fungsi.

Terangkan jenis yang ketat (mengisytiharkan (strict_types = 1);) dalam php. Terangkan jenis yang ketat (mengisytiharkan (strict_types = 1);) dalam php. Apr 07, 2025 am 12:05 AM

Jenis yang ketat dalam PHP didayakan dengan menambah mengisytiharkan (strict_types = 1); di bahagian atas fail. 1) Ia memaksa jenis pemeriksaan parameter fungsi dan pulangan nilai untuk mengelakkan penukaran jenis tersirat. 2) Menggunakan jenis yang ketat dapat meningkatkan kebolehpercayaan dan kebolehprediksi kod, mengurangkan pepijat, dan meningkatkan kebolehkerjaan dan kebolehbacaan.

Untuk apa komposer digunakan? Untuk apa komposer digunakan? Apr 06, 2025 am 12:02 AM

Komposer adalah alat pengurusan ketergantungan untuk PHP. Langkah-langkah teras menggunakan komposer termasuk: 1) mengisytiharkan kebergantungan dalam komposer.json, seperti "jalur/jalur-php": "^7.0"; 2) Jalankan ComposerInstall untuk memuat turun dan mengkonfigurasi kebergantungan; 3) Menguruskan versi dan autoload melalui komposer.lock dan autoload.php. Komposer memudahkan pengurusan pergantungan dan meningkatkan kecekapan projek dan penyelenggaraan.

Masa Depan PHP: Adaptasi dan Inovasi Masa Depan PHP: Adaptasi dan Inovasi Apr 11, 2025 am 12:01 AM

Masa depan PHP akan dicapai dengan menyesuaikan diri dengan trend teknologi baru dan memperkenalkan ciri -ciri inovatif: 1) menyesuaikan diri dengan pengkomputeran awan, kontena dan seni bina microservice, menyokong Docker dan Kubernetes; 2) memperkenalkan pengkompil JIT dan jenis penghitungan untuk meningkatkan prestasi dan kecekapan pemprosesan data; 3) Berterusan mengoptimumkan prestasi dan mempromosikan amalan terbaik.

See all articles