La base de données NoSQL (Not Only SQL) est un type de base de données qui s'est développé rapidement ces dernières années. Par rapport aux bases de données relationnelles traditionnelles, elle offre une meilleure évolutivité et de meilleures performances, et prend en charge davantage de types de données et de méthodes de stockage de données. Parmi eux, MongoDB est une base de données NoSQL qui utilise le modèle de base de données de documents et est largement utilisée dans les applications Web, les applications mobiles, les appareils Internet des objets et d'autres domaines.
Cet article expliquera comment utiliser PHP pour écrire les opérations de base de la base de données MongoDB et démontrera comment répondre aux besoins des différents utilisateurs à travers des exemples.
1. Opérations de base de la base de données MongoDB
La base de données MongoDB adopte le modèle de données de document et son unité de données de base est un document (document), qui est similaire à une ligne (ligne) dans une base de données relationnelle. Chaque document peut contenir différents types de données, tels que des chaînes, des entiers, des booléens, des tableaux, des dates, etc. Les documents sont représentés au format JSON et stockés dans des collections MongoDB.
1. Connectez-vous à la base de données MongoDB
Avant d'utiliser MongoDB, vous devez installer l'extension du pilote MongoDB. Ceci peut être réalisé en définissant la fonction dl() en PHP, ou vous pouvez directement télécharger l'extension MongoDB et l'installer manuellement.
Le code pour se connecter à la base de données MongoDB est le suivant :
<?php $mongo_server = "mongodb://localhost:27017"; $mongo_connection = new MongoClient($mongo_server); ?>
Parmi eux, $mongo_server est la chaîne de connexion de la base de données MongoDB, et $mongo_connection est l'objet de connexion de MongoDB.
2. Sélectionnez la base de données et la collection
Avant d'utiliser MongoDB, vous devez sélectionner la base de données et la collection que vous souhaitez exploiter. Le code pour sélectionner la base de données est le suivant :
<?php $mongo_db = $mongo_connection->selectDB("mydb"); ?>
Parmi eux, $mongo_db est l'objet de base de données sélectionné et mydb est le nom de la base de données.
Le code de sélection d'une collection est le suivant :
<?php $mongo_collection = $mongo_db->selectCollection("mycollection"); ?>
Parmi eux, $mongo_collection est l'objet de collection sélectionné et mycollection est le nom de la collection. Si la collection n'existe pas, elle sera créée automatiquement.
3. Insérer un document
Le code pour insérer un document à l'aide de MongoDB est le suivant :
<?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); ?>
Parmi eux, $document est le document à insérer, qui peut contenir plusieurs champs et valeurs.
4. Interroger des documents
Le code pour interroger des documents à l'aide de MongoDB est le suivant :
<?php $criteria = array("likes" => array('$gt' => 50)); $cursor = $mongo_collection->find($criteria); foreach($cursor as $document) { echo $document["title"] . " - " . $document["url"] . "<br/>"; } ?>
Parmi eux, $criteria est la condition de filtrage et $cursor est l'ensemble de résultats de requête renvoyé. Pour parcourir l'ensemble de résultats, vous pouvez utiliser une boucle foreach.
5. Mettre à jour le document
Le code pour mettre à jour le document à l'aide de MongoDB est le suivant :
<?php $criteria = array("title" => "MongoDB Tutorial"); $newdata = array('$set' => array("description" => "This is an updated tutorial")); $mongo_collection->update($criteria, $newdata, array("multiple" => true)); ?>
Parmi eux, $criteria est la condition de filtrage du document à mettre à jour, $newdata est le champ et la valeur à mettre à jour, et le troisième paramètre indique s'il faut mettre à jour plusieurs documents.
6. Supprimer des documents
Le code pour supprimer des documents à l'aide de MongoDB est le suivant :
<?php $criteria = array("likes" => array('$lt' => 50)); $mongo_collection->remove($criteria); ?>
Parmi eux, $criteria est la condition de filtrage du document à supprimer.
2. Exemple de démonstration
Sur la base des opérations de base ci-dessus, nous pouvons réaliser les besoins des différents utilisateurs.
1. Besoins des utilisateurs ordinaires
Supposons qu'il existe un système de gestion des informations sur les livres qui doit implémenter les fonctions suivantes :
(1) Ajouter des informations sur le livre
(2) Interroger les informations sur le livre
(3) Mettre à jour les informations sur le livre
(4) Supprimer les informations du livre
Les utilisateurs de ce système sont des utilisateurs ordinaires et ne nécessitent pas de connexion utilisateur ni de contrôle des autorisations. Le code permettant d'utiliser MongoDB pour répondre aux exigences ci-dessus est le suivant :
<?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); ?>
2. Exigences de l'administrateur
Supposons qu'il existe un système de gestion de blog qui doit implémenter les fonctions suivantes :
(1) Ajouter un blog
(2) Interroger la liste des blogs
(3) Modifier le blog
(4) Supprimer le blog
Les utilisateurs de ce système sont divisés en utilisateurs ordinaires et administrateurs doivent se connecter et effectuer un contrôle des autorisations. Le code pour implémenter les fonctions ci-dessus à l'aide de PHP et MongoDB est le suivant :
<?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); ?>
Parmi eux, $username et $password sont le nom d'utilisateur et le mot de passe de l'administrateur, $users_collection est l'objet de collection d'utilisateurs et $role est le rôle de l'utilisateur.
3. Résumé
Cet article présente en détail les opérations de base de la mise en œuvre d'une base de données NoSQL à l'aide de PHP et MongoDB, et montre comment répondre aux besoins des différents utilisateurs à travers des exemples. La combinaison de PHP et MongoDB peut fournir des solutions de stockage de données efficaces et évolutives pour les domaines de développement tels que les applications Web, les applications mobiles et les appareils Internet des objets.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!