Maison développement back-end tutoriel php Utilisez PHP et MongoDB pour implémenter une base de données NoSQL afin de répondre aux différents besoins des utilisateurs

Utilisez PHP et MongoDB pour implémenter une base de données NoSQL afin de répondre aux différents besoins des utilisateurs

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

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);
?>
Copier après la connexion

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");
?>
Copier après la connexion

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");
?>
Copier après la connexion

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);
?>
Copier après la connexion

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/>";
}
?>
Copier après la connexion

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));
?>
Copier après la connexion

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);
?>
Copier après la connexion

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);
?>
Copier après la connexion

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);
?>
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

Expliquez l'expression de correspondance (PHP 8) et comment elle diffère du commutateur. Expliquez l'expression de correspondance (PHP 8) et comment elle diffère du commutateur. Apr 06, 2025 am 12:03 AM

Dans PHP8, les expressions de correspondance sont une nouvelle structure de contrôle qui renvoie différents résultats en fonction de la valeur de l'expression. 1) Il est similaire à une instruction Switch, mais renvoie une valeur au lieu d'un bloc d'instruction d'exécution. 2) L'expression de correspondance est strictement comparée (===), ce qui améliore la sécurité. 3) Il évite les éventuelles omissions de rupture dans les instructions de commutation et améliore la simplicité et la lisibilité du code.

Qu'est-ce que la contrefaçon de demande inter-sites (CSRF) et comment implémentez-vous la protection CSRF dans PHP? Qu'est-ce que la contrefaçon de demande inter-sites (CSRF) et comment implémentez-vous la protection CSRF dans PHP? Apr 07, 2025 am 12:02 AM

En PHP, vous pouvez prévenir efficacement les attaques du CSRF en utilisant des jetons imprévisibles. Les méthodes spécifiques comprennent: 1. Générer et intégrer les jetons CSRF dans la forme; 2. Vérifiez la validité du jeton lors du traitement de la demande.

Décrivez l'objectif et l'utilisation de l'opérateur ... (SPLAT) dans les arguments de fonction PHP et le déballage du tableau. Décrivez l'objectif et l'utilisation de l'opérateur ... (SPLAT) dans les arguments de fonction PHP et le déballage du tableau. Apr 06, 2025 am 12:07 AM

L'opérateur ... (SPLAT) dans PHP est utilisé pour déballer les paramètres et les tableaux de fonction, améliorant la simplicité et l'efficacité du code. 1) Démontage du paramètre de fonction: passez l'élément de tableau en tant que paramètre à la fonction. 2) Démontage du tableau: déballer un tableau dans un autre tableau ou en tant que paramètre de fonction.

Comment pouvez-vous empêcher une classe d'être prolongée ou une méthode d'être remplacée en PHP? (mot-clé final) Comment pouvez-vous empêcher une classe d'être prolongée ou une méthode d'être remplacée en PHP? (mot-clé final) Apr 08, 2025 am 12:03 AM

Dans PHP, le mot-clé final est utilisé pour empêcher les classes d'être héritées et les méthodes écrasées. 1) Lors du marquage de la classe comme final, la classe ne peut pas être héritée. 2) Lors du marquage de la méthode comme final, la méthode ne peut pas être réécrite par la sous-classe. L'utilisation de mots clés finaux garantit la stabilité et la sécurité de votre code.

Expliquez des types stricts (Declare (strict_types = 1);) en php. Expliquez des types stricts (Declare (strict_types = 1);) en php. Apr 07, 2025 am 12:05 AM

Les types stricts en PHP sont activés en ajoutant Declare (strict_types = 1); en haut du fichier. 1) Il force la vérification du type des paramètres de fonction et des valeurs de retour pour éviter la conversion de type implicite. 2) L'utilisation de types stricts peut améliorer la fiabilité et la prévisibilité du code, réduire les bogues et améliorer la maintenabilité et la lisibilité.

See all articles