• Call us: 1(704) - 858 - 0065
  • Email us: dmngaya@dmnbigdata.com
  • Working Hours: 8am - 6pm

Création d’une application de blog avec MongoDB

Dans ce post, je vais construire un blog parce que beaucoup de gens sont familiers avec cela. Il sera écrit avec Java. Nous verrons pas comment installer MongoDB mais comment fonctionne Java dans MongoDB. QU’EST-CE QUE MONGODB? Il s’agit d’un magasin de données non relationnelle pour les documents JSON, il ne stocke pas de données dans des tables comme une base de données relationnelle, mais il enregistre des documents JSON.

ALORS, QU’EST-CE QUE JSON?

Il est Java script objet notation ressembler avec avoir une clé et la valeur. Dans le document JSON, nous pouvons également avoir une clé avec Array comme valeur comme ceci:
{"nom": "Madishon", "a": 4, "b": 14, fruit: ["pomme", "pomme", "banane"]}

Dans la base de données relationnelle, il est difficile de Hava un tableau comme des fruits dans le même document. C’est très utile lors de l’écriture de programmes. Même MongoDB stocke des documents, mais un autre aspect pour MongoDB est schemaless. Que cela signifie-t-il? Deux documents n’ont pas besoin d’avoir le même schéma, donc nous pouvons avoir sur la même collection, des documents avec des valeurs différentes comme ci-dessous:
{"a": 3, "b": 7}
{"a": 7, "b": 9, "c": 10}
En conclusion, MongoDB est sans schéma et il est orienté document.

Notes:

MongoDB est sans schéma mais il utilise aussi parfois le terme «schéma dynamique». Le fait est que, contrairement à une base de données relationnelle, nous ne sommes pas contraints de suivre un schéma particulier. Si nous souhaitons modifier notre schéma, nous sommes libres d’effectuer l’une des opérations suivantes: Commencez à insérer des documents avec le nouveau schéma. Effectuez une mise à jour en bloc sur les documents existants. Commencez à mettre à jour les anciens documents vers le nouveau schéma un par un lors d’un événement approprié (par exemple, l’obtention de la lecture ou de l’écriture), comme codé dans l’application. Comparez cela avec ce qui se passe dans une base de données relationnelle, où la table doit généralement être mis hors connexion afin d’ajouter des colonnes. MongoDB ne prend pas en charge les jointures en tant que décision de conception, car ils ne sont pas dimensionnables horizontalement, et il ne prend pas en charge SQL car ce langage de requête a été construit autour des jointures et des transactions, et tend à assumer la structure de la table plutôt que le document flexible l’orientation que MongoDB fournit.

VUE D’ENSEMBLE DE LA CONSTRUCTION D’UNE APPLICATION AVEC MONGODB:

Maintenant, nous allons savoir comment construire une application en utilisant Java.So nous avons installé le logiciel MongoDB, alors nous avons mongod processus. Il ya quelques façons de se connecter à MongoDB, l’une des choses est la coquille Mongo. C’est un programme autonome appelé Mongo qui a un langage Shell JavaScript construit à l’intérieur et se connecte via TCP TP MongoDB. Et c’est une façon de manipuler les données et d’inspecter les données. Ici, je construis une application Java, donc nous construisons un blog avec un tas de pages pour insérer des posts et afficher des posts, et insérer des commentaires, et montrer des commentaires. Donc, c’est le blog et tout cela va être écrit en Java. Donc, nous avons une application Java avec différents chemins de ce. Notre demande elle-même sera appelée notre Cade. Notre code Java va utiliser deux Frameworks différents qui vont rendre plus facile d’écrire des applications Web. L’un est appelé Spark Java et l’autre est appelé marqueur libre. Donc, Spark Java est un micro-Framework Web inspiré par Sinatra, qui nous permettra de facilement mettre en place des itinéraires qui mappent aux URL, de sorte que quand une demande intervient pour une URL particulière, nous pouvons le gérer et nous pouvons faire une réponse via HTTP. Et puis marqueur libre est un langage de templeting qui nous permet de créer des vues HTML afin que nous puissions utiliser la programmation de type de contrôleur de vue de modèle où la vue, qui est la partie d’interface utilisateur, est distincte du contrôleur, qui gère l’utilisateur imput dans le modèle, qui est le sous-jacent logique de l’application. Maintenant, tout cela fonctionne à l’intérieur de la JVM, car il s’agit de Java. All ce code Spark et Free Framework afin de parler à MongoDB, doit parler au pilote Java Mongo. Et le pilote de Java de Mongo est une bibliothèque qui va être liée dans et qui est en fait va être la partie qui fait les connexions TCP à MongoDB pour vous. Donc, nous allons écrire du code Java, il va utiliser Spark Java que nous allons passer. Et marqueur libre, qui va passer, qui est un langage de tempétage, puis utilise également le pilote Java Mongo, qui est le code Java destiné à parler à MongoDB et récupérer des données et d’insérer des données à la base de données. Et tout cela ensemble va présenter ce blog. Et puis l’utilisateur est de l’autre côté et il parle au processus de notre application de code. Normalement pour une demande Web, il serait le port 80, mais pour notre exemple, nous allons utiliser 8082 parce que 80 est réservé et difficile à utiliser ce port si vous n’êtes pas root sur l’ordinateur. Et puis cela pourrait passer par une sorte de traduction d’adresse réseau via une boîte de Linksys ou quelque chose comme ça. Donc, ici, nous allons donner la plupart du code pour le blog que nous pouvons faire quelques modifications et manipuler les données dans la base de données, parce que le point n’est pas d’enseigner comment être un programmeur Web, mais comment utiliser MongoDB.

CONFIGURATION REQUISE:

Nous utilisons CentOS 6,7 et JDK 8.
[HDUser @ base ~] $ Java-version
version Java "_ 40"
Environnement d'exécution Java (TM) SE (Build B25 _ 40)
Java HotSpot (TM) 64-bit Server VM (Build 25,40-B25, mode mixte)
[HDUser @ base ~] $ javac-version
javac _ 40

INSTALLATION DE MONGODB SUR CENTOS 6,7:

Nous avons installé MongoDB 3.0.6
[HDUser @ base ~] $ Mongo-version
Version Shell MongoDB: 3.0.6

NOUS AVONS UN CLUSTER AVEC 1 MASTER ET 3 RÉPLICAT SET:

[HDUser @ base ~] $ Mongo--Host'hostname-I | awk' {imprimer $1} ' '--quiet
RepSet: RS  . status primaire ()
{
 "Set": "RepSet",
 "date": ISODate ("2016-01-10T04:25:22.835 Z"),
 "myState": 1,
 "membres": [
 {
 "_ id": 0,
 "nom": "base.deb.com:27017",
 "santé": 1,
 "État": 1,
 "stateStr": "PRIMARY",
 "uptime": 79960,
 "optime": timestamp (1451456145, 1),
 "optimeDate": ISODate ("2015-12-30T06:15:45Z"),
 "electionTime": timestamp (1452320253, 1),
 "electionDate": ISODate ("2016-01-09T06:17:33Z"),
 "configVersion": 14,
 "Self": vrai
 },
 {
 "_ id": 1,
 "nom": "DN1.deb.com:27017",
 "santé": 1,
 "État": 2,
 "stateStr": "secondaire",
 "uptime": 79682,
 "optime": timestamp (1451456145, 1),
 "optimeDate": ISODate ("2015-12-30T06:15:45Z"),
 "lastHeartbeat": ISODate ("2016-01-10T04:25:22.543 Z"),
 "lastHeartbeatRecv": ISODate ("2016-01-10T04:25:22.494 Z"),
 "pingMs": 0,
 "configVersion": 14
 },
 {
 "_ id": 2,
 "nom": "DN2.deb.com:27017",
 "santé": 1,
 "État": 2,
 "stateStr": "secondaire",
 "uptime": 79669,
 "optime": timestamp (1451456145, 1),
 "optimeDate": ISODate ("2015-12-30T06:15:45Z"),
 "lastHeartbeat": ISODate ("2016-01-10T04:25:20.936 Z"),
 "lastHeartbeatRecv": ISODate ("2016-01-10T04:25:22.246 Z"),
 "pingMs": 0,
 "configVersion": 14
 },
 {
 "_ id": 3,
 "nom": "DN3.deb.com:27017",
 "santé": 1,
 "État": 2,
 "stateStr": "secondaire",
 "uptime": 79607,
 "optime": timestamp (1451456145, 1),
 "optimeDate": ISODate ("2015-12-30T06:15:45Z"),
 "lastHeartbeat": ISODate ("2016-01-10T04:25:21.237 Z"),
 "lastHeartbeatRecv": ISODate ("2016-01-10T04:25:22.640 Z"),
 "pingMs": 0,
 "configVersion": 14
 }
 ],
 "OK": 1
}
RepSet: primaire>

INSTALLATION ET UTILISATION DE MAVEN:

NOTES DE COURS:

Des instructions d’installation supplémentaires concernant des systèmes d’exploitation spécifiques peuvent être trouvées sur: http://maven.apache.org/download.cgi#Installation Nous avons besoin de construire un outil d’automatisation et il ya un couple à choisir, mais pour cet exemple, nous choisiront un appelé Maven. Nous le téléchargons sur:https://Maven.Apache.org/download.cgi Nous avons téléchargé Apache-Maven-3.3.9-bin. zip, puis décompressez-le:
Décompressez Apache-Maven-3.3.9-bin. zip
Mettez le Apache-Maven-3.3.9/bin sur le. Profile: pour CentOS, on. bashrc et. bash_profile pour l'utilisateur qui exécutera Marven.

[HDUser @ base ~] $ MVN
INFO Recherche de projets--
[INFO]------------------------------------------------------------------------
INFO ÉCHEC DE LA CONSTRUCTION
[INFO]------------------------------------------------------------------------
INFO Temps total: 0,315 s
INFO Terminé à: 2016-01-10T00:27:48-05:00
INFO Mémoire finale: 4M/90M
[INFO]------------------------------------------------------------------------
ERREUR Aucun objectif n'a été spécifié pour cette Build. Vous devez spécifier une phase de cycle de vie valide ou un objectif dans le format 
[Erreur]: ou:
ERREUR [:]:. Les phases de cycle de vie disponibles sont: valider, initialiser, générer-sources, 
[ERROR] process-sources, générer-ressources, process-Resources, compiler, process-classes, Generate-test-sources, 
[Erreur] process-test-sources, Generate-test-Resources, process-test-Resources, test-compile, process-test-classes, 
[ERROR] test, préparer-paquet, paquet, pré-intégration-test, intégration-test, post-Integration-Test, 
[ERROR] vérifier, installer, déployer, pré-nettoyer, nettoyer, post-nettoyage, pré-site, site, post-site, site-deploy. -  [Help 1]
ERREUR Pour voir la trace complète de la pile des erreurs, réexécutez Maven avec le commutateur-e.
ERREUR Réexécutez Maven en utilisant le commutateur-X pour activer la journalisation complète de débogage.
ERREUR 
ERREUR Pour plus d'informations sur les erreurs et les solutions possibles, veuillez lire les articles suivants:
ERREUR [Aide 1] http://cwiki.apache.org/confluence/display/MAVEN/NoGoalSpecifiedException
Donc, nous avons Maven sur notre chemin. Sur notre répertoire de départ, nous devons créer Maven Project, maintenant, Maven utilise quelque chose appelé un modèle d’objet de projet qui est abrégé en POM, et le POM et il est nstocké dans un fichier appelé POM. Xml. we peut créé un à la main, donc nous allons utiliser ce plug-in pratique de Mave n appelé Archetype pour créer un nouveau projet Maven. Nous pouvons l’exécuter en:
archétype MVN: générer
mais nous allons choisir la valeur par défaut, et nous allons juste prendre par défaut pour quelle version, mais Maven nécessite un ID de groupe, qui est un peu comme un nom de package java: com. MongoDB et pour un nom d’artefact, nous allons choisir le nom comme: M101J.
Téléchargé: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.1/maven-archetype-quickstart-1.1.pom 
(2 KB à 19,8 KB/sec)
Décrivez value for Property'groupId':: com. MongoDB
Décrivez value for Property'artifactId':: M101J
Décrivez value for Property'version': 1,0-SNAPSHOT:: 
Décrivez value for Property'package': com. MongoDB:: 
Confirmer la configuration des propriétés:
groupId: com. MongoDB
artifactId: M101J
version: 1,0-SNAPSHOT
paquet: com. MongoDB
 Y:: 
[INFO]----------------------------------------------------------------------------
INFO Utilisation des paramètres suivants pour créer un projet à partir de l'ancien archétype (1. x): Maven-Archetype-QuickStart: 1.1
[INFO]----------------------------------------------------------------------------
INFO Paramètre: basedir, valeur:/Home/HDUser
INFO Paramètre: package, valeur: com. MongoDB
INFO Paramètre: groupId, valeur: com. MongoDB
INFO Paramètre: artifactId, valeur: M101J
INFO Paramètre: packageName, valeur: com. MongoDB
INFO Paramètre: version, valeur: 1,0-SNAPSHOT
[INFO] projet créé à partir de l'ancien archétype (1. x) dans dir:/home/hduser/M101J
[INFO]------------------------------------------------------------------------
INFO BÂTIR LE SUCCÈS
[INFO]------------------------------------------------------------------------
INFO Durée totale: 07:19 min
INFO Terminé à: 2016-01-10T00:48:02-05:00
INFO Mémoire finale: 16M/146M
[INFO]------------------------------------------------------------------------
Nous pouvons le faire aussi via cette commande:
ARCHETYPE MVN: generate-DgroupId = com. MongoDB-DartifactId = M101J-DarchetypeArtifactId = Maven-Archetype-QuickStart-DinteractiveMode = false
Il a créé le répertoire comme ci-dessous:
[HDUser @ base ~] $ ls-LTR M101J
au total 8
-rw-r-r-1 HDUser Hadoop 743 Jan 10 00:48 POM. Xml
drwxr-xr-x 4 HDUser Hadoop 4096 Jan 10 00:48 SRC
Dans le Pom. xml, nous avons le répertoire source et nous avons le contenu de mon POM. XML à l’aide de JDK 8:
 4.0.0
 com. MongoDB
 M101J
 Pot
 1,0-SNAPSHOT
 M101J
 http://Maven.Apache.org

  
 1.8
 1.8
  

  

    
 com. sparkjava
 Spark-Core
 2.0.0
    

    
 org. slf4j
 SLF4J-simple
 1.7.5
    

    
 org. MongoDB
 Mongo-Java-pilote
 3.1.0
    

    
 com. google. code. Gson
 Gson
 2.2.4
    

    
 Junit
 Junit
 3.8.1
 test
    
  

    
        
 Référentiel Spark
 http://www.sparkjava.com/Nexus/content/Repositories/Spark/
        
    

Le répertoire source a une classe appelée App. Java, puis également un test appelé AppTest. Java Voir ci-dessous le code simple de App. Java, qui imprime Hello World:
[HDUser @ base MongoDB] $ pwd
/home/hduser/M101J/src/main/java/com/mongodb
[HDUser @ base MongoDB] $ cat App. Java
package com. MongoDB;

/**
 * Bonjour monde!
 *
 */
public class App 
{
 public static void main (String [] args)
 {
 System. out. println ("Bonjour le monde!");
 }
}
Ainsi, nous pouvons exécuter cette classe avec un plug-in Maven appelé exec: la classe pour notre exemple est appelée: com. MongoDB. app
CD/Home/HDUser/m101j
MVN Clean compiler exec: Java-dexec. mainClass = com. MongoDB. app
Si cela fonctionne, vous obtiendrez ce résultat:
Téléchargement: https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/35/commons-parent-35.pom
Téléchargé: https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/35/commons-parent-35.pom 
(57 Ko à 499,3 Ko/s)
Téléchargement: https://repo.maven.apache.org/maven2/org/apache/apache/15/apache-15.pom
Téléchargé: https://repo.maven.apache.org/maven2/org/apache/apache/15/apache-15.pom (15 KB à 158,3 KB/sec)
Téléchargement: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
Téléchargement: https://repo.maven.apache.org/maven2/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar
Téléchargé: https://repo.maven.apache.org/maven2/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar 
(54 Ko à 320,2 Ko/s)
Téléchargé: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
(238 Ko à 770,9 Ko/s)
Salut tout le monde!
[INFO]------------------------------------------------------------------------
INFO BÂTIR LE SUCCÈS
[INFO]------------------------------------------------------------------------
INFO Temps total: 21,632 s
INFO Terminé à: 2016-01-10T01:05:11-05:00
INFO Mémoire finale: 19M/199M
[INFO]------------------------------------------------------------------------


[HDUser @ base M101J] $ ls -ltr
au total 12
-rw-r-r-1 HDUser Hadoop 743 Jan 10 00:48 POM. Xml
drwxr-xr-x 4 HDUser Hadoop 4096 Jan 10 00:48 SRC
drwxr-xr-x 4 HDUser Hadoop 4096 Jan 10 01:05 cible
[HDUser @ base M101J] $ ls -ltr cible
au total 8
drwxr-xr-x 3 HDUser Hadoop 4096 Jan 10 01:05 Maven-Status
drwxr-xr-x 3 HDUser Hadoop 4096 Jan 10 01:05 classes
Dans cette démo, nous utiliserons l’outil appelé IntelliJIDEA, si vous le souhaitez, vous pouvez le télécharger ici:https://www.jetbrains.com/idea/download/#section = Linux

CADRE D’APPLICATION WEB SPARK:

Le projet final est l’application Web, donc l’une des choses que nous devons faire est de commencer avec une application Web. Il y a beaucoup de frameworks d’application Web pour Java. Pour notre exemple, nous allons utiliser une application Web simple avec des dépendances minimum et est vraiment facile de commencer. Donc, nous choisissons Framework appelé Spark. ici, nous n’avons pas besoin d’un serveur Web ou d’un serveur d’applications. Ainsi, comme Mongo Java, nous devons l’importer sur le projet. La première chose dans Spark est de dire à Maven où est le référentiel d’étincelle dans notre POM. XML en utilisant, par exemple IntelliJIDEA: Dans mon POM. XML, j’ajoute ce référentiel:
    
        
 Référentiel Spark
 http://www.sparkjava.com/Nexus/content/Repositories/Spark/
        
Ensuite, j’ajoute également cette dépendance:
    
 com. sparkjava
 Spark-Core
 2.0.0
Maintenant, nous sommes prêts à créer notre première application Spark appelée SparkSayHelloWorld:
package com. MongoDB;
l'étincelle d'importation. Demande
l'étincelle d'importation. Réponse
l'étincelle d'importation. Route
l'étincelle statique d'importation. Spark. *;
/* * * Créé par HDUser le 11/01/16. */
public class SparkSayHelloWorld {
 public static void main (String [] args) {
 Get ("/", New route () {
 @Override
 handle d'objet public (demande de requête, réponse de réponse) {
 retour "Hello World!!";
 }
 });
 }
}
En exécutant SparkSayHelloWorld avec IntelliJIDEA, nous avons obtenu ce résultat:
/usr/java/JDK1.8.0/bin/Java-Didea. Launcher. port = 7532-didea. Launcher. bin. Path =/home/hduser/IDEAIC/idea-IC-143.1184.17/bin-Dfile. Encoding = UTF-8-classpath/usr/java/JDK1.8.0/jre/lib/charsets.jar:/usr/java/JDK1.8.0/jre/lib/ deploy. jar:/usr/java/jdk/jre/lib/ext/cldrdata. jar:/usr/java/JDK1.8.0/jre/lib/ext/dnsns.jar:/usr/java/JDK1.8.0/jre/lib/ext/jfxrt.jar:/usr/java/JDK1.8.0/jre/lib/ext/LocaleData.jar:/usr/java/JDK1.8.0/jre/lib/ext/Nashorn.jar :/usr/java/JDK1.8.0/jre/lib/ext/sunec.jar:/usr/java/JDK1.8.0/jre/lib/ext/sunjce_provider.jar:/usr/java/JDK1.8.0/jre/lib/ext/sunpkcs11.jar:/usr/java/JDK1.8.0/jre/lib/ext/zipfs.jar:/usr/java/JDK1.8.0/jre/lib/javaws.jar:/usr/ java/jdk/jre/lib/JcE. jar:/usr/java/JDK1.8.0/jre/lib/JFR.jar:/usr/java/JDK1.8.0/jre/lib/jfxswt.jar:/usr/java/JDK1.8.0/jre/lib/JSSE.jar:/usr/java/JDK1.8.0/jre/lib/Management-Agent.jar:/usr/java/JDK1.8.0/jre/lib/plugin.jar :/usr/java/JDK1.8.0/jre/lib/Resources.jar:/usr/java/JDK1.8.0/jre/lib/RT.jar:/home/hduser/M101J/target/classes:/Home/HDUser/.m2/Repository/com/sparkjava/Spark-Core/2.0.0/Spark-Core-2.0.0.jar:/Home/HDUser/.m2/repository/org/ SLF4J/SLF4J-API/SLF4J-API-. jar:/Home/HDUser/.m2/repository/org/Eclipse/Jetty/Jetty-Server/9.0.2.v20130417/Jetty-Server-9.0.2.v20130417.jar:/Home/HDUser/.m2/repository/org/Eclipse/Jetty/Orbit/javax.servlet/3.0.0. v201112011016/javax. servlet-v201112011016. jar:/Home/HDUser/.m2/repository/org/Eclipse/Jetty/Jetty-http/9.0.2.v20130417/Jetty-http-9.0.2.v20130417.jar:/Home/HDUser/.m2/repository/org/Eclipse/Jetty/Jetty-util/9.0.2. v20130417/Jetty-util-9.0.2. v20130417. jar:/Home/HDUser/.m2/repository/org/Eclipse/Jetty/Jetty-IO/9.0.2.v20130417/Jetty-IO-9.0.2.v20130417.jar:/Home/HDUser/.m2/repository/org/Eclipse/Jetty/Jetty-webapp/9.0.2.v20130417/ Jetty-webapp-9.0.2. v20130417. jar:/Accueil/HDUser/. m2/repository/org/Eclipse/Jetty/Jetty-XML/9.0.2. v20130417/Jetty-XML-9.0.2. v20130417. jar:/Home/HDUser/.m2/repository/org/Eclipse/Jetty/Jetty-servlet/9.0.2.v20130417/ Jetty-servlet-9.0.2. v20130417. jar:/Accueil/HDUser/. m2/repository/org/Eclipse/Jetty/Jetty-Security/9.0.2. v20130417/Jetty-Security-9.0.2. v20130417. jar:/Home/HDUser/.m2/repository/org/SLF4J/SLF4J-simple/1.7.5/SLF4J-simple-1.7.5.jar :/Home/HDUser/.m2/repository/org/MongoDB/Mongo-Java-Driver/3.1.0/Mongo-Java-Driver-3.1.0.jar:/Home/HDUser/.m2/Repository/com/Google/Code/Gson/Gson/2.2.4/Gson-2.2.4.jar:/home/hduser/IDEAIC/idea-IC-143.1184.17/lib/idea_rt.jar com. IntelliJ. RT. Execution. application. AppMain com. MongoDB. SparkSayHelloWorld
= = Étincelle s'est enflammé--
>> Écoute sur 0.0.0.0:4567
[Thread-0] INFO org. Eclipse. Jetty. Server. Server-Jetty-9.0.2. v20130417
[Thread-0] INFO org. Eclipse. Jetty. Server. ServerConnector-démarré ServerConnector @ 1c54c38b {HTTP/1.1} {0.0.0.0:4567}
Avec notre navigateur http://localhost:4567/ , nous avons eu le résultat: Hello World

MOTEUR DE TEMPLATING FREEMAKRKER:

Il s’agit d’un moteur de modèle Voir les informations ici:http://Freemarker.Incubator.Apache.org/ Nous devons ajouter une dépendance de Freemarker dans notre POM. Xml:
 Freemarker org.
 Freemarker
 2.3.20

BLOG DANS LES TABLES RELATIONNELLES:

Supposons que notre blog peut être modélisé avec les tables relationnelles suivantes.
Auteurs:
 author_id,
 Nom
 email
 mot de passe
Messages:
 Post_id
 author_id
 Titre
 Corps 
 publication_date

Commentaires:
 comment_id,
 Nom 
 email
 comment_text

post_comments:
 Post_id
 comment_id

Tags
 tag_id
 nom

post_tags
 Post_id
 tag_id
Afin d’afficher un billet de blog avec ses commentaires et balises, nous serons consultés 6 tables dans un système relationnel.

MODÉLISATION D’UN BLOG DANS MONGODB:

Collection Posts: Imaginez que nous avons une collection appelée postes que nous pouvons avoir un titre de la poste, le corps et l’auteur, la date du poste a été posté, puis propably quelques commentaires aussi Tags. Collection d’auteurs: nous pouvons avoir une collection d’auteurs qui contiendra le nom d’utilisateur, mot de passe. Ici, nous avons 2 collections qui représentent 6 tables que nous avons dans le système relationnel. Pour accéder à la page d’accueil de notre blog, nous avons besoin seulement de la collection Posts parce que dans cette collection nous avons aussi les informations sur les auteurs.

CONCEPTION DE SCHÉMA:

Dans la collection Posts, les balises et les commentaires peuvent avoir les mêmes éléments, dans ce scénario, il est impossible d’incorporer ces données dans une publication de document (nous devons les placer dans une collection distincte), sinon les données incorporées pourraient dépasser la limite de document de 16 Mo dans MongoDB.

Laisser un commentaire

Fermer le menu
×
×

Panier