Rubriques

>> Toutes les rubriques <<
· Informatique (67)
· Nature : Aquarium, plantes, et animaux (12)
· Politique et Information (23)
· Sciences (8)
· Musique (7)
· Films (10)
· Peinture, photo (2)
· Histoire (8)
· Bouquins (7)
· Femmes hors du commun (1)

Rechercher
Derniers commentaires

welcome http://mobstan o01.centerblog .net
Par mobstano01, le 11.01.2020

medium retour d'etre aimer chance au jeux loto richesse de la porte monnaie magique valise magique ce qui
Par Anonyme, le 07.11.2019

merci... http://bernie- liege.centerbl og.net
Par bernie-liege, le 27.09.2019

beau travail !
Par Anonyme, le 23.09.2019

dd
Par Anonyme, le 13.06.2019

Voir plus

Articles les plus lus

· Histoire de pet et de dromadaire
· Le concombre tueur !
· L'origine du Monde
· Aux Philippines, trois cent nouvelles espèces !
· Vol de corne de rhinocéros à l'aquarium de Liège

· le Quintette à cordes D 956 de Schubert
· Le dormeur du Val
· Encore des choses surprenantes dans la Nature
· Inception, ou la puissance de l'inconscient
· Ajout du projet Littré dans un media-Wiki
· Bac de quarante mille litres
· Dutronc, je retourne ma veste
· Mort du chanteur Alain Leprest
· Aquarium de Bruxelles
· Le blues de l'informaticien

Voir plus 

Abonnement au blog
Recevez les actualités de mon blog gratuitement :

Je comprends qu’en m’abonnant, je choisis explicitement de recevoir la newsletter du blog "bernie-liege" et que je peux facilement et à tout moment me désinscrire.


Statistiques

Date de création : 20.05.2011
Dernière mise à jour : 29.09.2019
164 articles


Thèmes

monde mongodb PHP MySQL

MongoDB et PHP, exemple

Publié le 05/01/2018 à 00:34 par bernie-liege Tags : mongodb PHP MySQL
NOSQL - MONGODB ET PHP: PREMIÈRE APPROCHE Publié le 04/03/10 à 09h49 par DJo

NoSQL et MongoDB ne vous dise probablement pas grand chose, mais cela va changer !

NoSQL - MongoDB

NOSQL

Si le mot NoSQL ne vous dit rien pour le moment, la tendance devrait bientôt changer dans peu de temps. NoSQL ou "Not only SQL" est un mouvement très récent (2009), qui vous l'aurez compris, concerne les bases de données.

L'idée du mouvement est simple: Proposer des alternatives aux bases de données relationnelles pour coller aux nouvelles tendances et architectures du moment, notamment le Cloud Computing.

Les axes principaux du NoSQL: haute disponibilité et partitionnement des données, au détriment de la consistance.

Alors que les bases de données relationnelles actuelles sont basées sur le concept ACID (Atomicité, Consistance, Isolation, Durabilité), le NoSQL prône l'abandon de ces contraintes.

Le NoSQL s'annonce donc comme une réponse aux limites du relationnel et du monde ACID. Et les géants du web l'ont bien compris, tous abandonnent petit à petit leur BDD relationnelle au profit des principes du NoSQL:

  • Google et BigTable
  • Amazon et SimpleDB
  • Facebook et Cassandra
  • LinkedIn et Voldemort
  • Etc.

 

MONGODB

Aujourd'hui, nous allons nous intéresser à une base de données NoSQL qui commence à gagner en maturité: MongoDB.

MongoDB est une base de données "orientée document". Totalement open-source, cette dernière est développée en C++.

Contrairement à MySQL par exemple, MongoDB va stocker des données sous forme de JSON.

Comme toutes bases de données, il sera possible d'effectuer des requêtes dynamiques pour récupérer vos données, définir des index pour améliorer les performances, insérer des données et les mettre à jour etc. La grande différence avec MySQL, c'est sans doute l'absence de tables.

En effet, vous n'aurez pas à créer un schéma de BDD à respecter. Tout est dynamique, vous pourrez à tout moment créer de nouvelles propriétés, sans pour autant perdre en performances ! Pour comprendre, rien de mieux qu'un exemple pratique.

Comparons MongoDB et MySQL sur un exemple simple: Des articles liés à des commentaires. Avec MySQL, nous aurions été obligé dans un premier temps de créer deux tables:

article

  • id
  • titre
  • texte
  • date
  • auteur

commentaire

  • id
  • article_id
  • texte
  • date
  • auteur

Puis nous aurions inséré les données avec une requêtes INSERT INTO. Avec MongoDB, la stracture est créée automatiquement à la première insertion et peut changer à tout moment, exemple:

1.var article = { titre: 'MongoDB exemple',
2.texte: "Ceci est un test d'article pour tester MongoDB",
3.date: new Date('03-03-2010'),
4.auteur: 'DJo',
5.comments : [ { text: 'Super article !!', date: new Date('03-04-2010'), auteur: 'Toto' },
6.{ text: 'Je confirme, le NoSQL ça déchire !', date: new Date('03-04-2010'), auteur: 'Novaway' }]
7.}
8.db.articles.insert(article);

Et voilà, nous avons stocké nos données article et commentaire dans MongoDB. Pratique non ?

Vous aurez remarqué qu'on ne spécifie pas d'id aux éléments. Cette tâche est automatiquement effectuée par MongoDB.

Un champ "_id" est présent pour chaque donnée afin de conserver l'identification et l'unicité des données.

MongoDB n'utilise pas des tables, mais des collections. En faisant db.articles.insert, nous avons inséré les données dans la collection "articles".

 

Maintenant, comment récupérer notre article ?

Avec MySQL nous aurions fait un simple SELECT sur la table article, avec MongoDB voilà comment faire:

1.db.articles.find( { titre: 'MongoDB exemple' }, { comments: 0 } );

Ici, nous allons chercher les articles dont le titre est "MongoDB exemple". Nous voudrons récupérer tous les champs, sauf les commentaires, d'où le comments: 0.

 

Vous pouvez essayer de manipuler les données sur le shell MongoDB de démo.

Pour en savoir plus sur le fonctionnement de la BDD, allez consuter le manuel, il est bien documenté et facile à comprendre.

 

MONGODB ET PHP

La question qui doit vous venir à présent est: Mais comment utiliser MongoDB avec mon site PHP ?

La réponse est simple: En utilisant le driver MongoDB de PHP.

En effet, PHP intègre directement une classe Mongo permettant d'intéragir avec la base de données.

 

Se connecter à la base MongoDB en PHP

Première étape, la connexion à votre BDD locale:

1.$con new Mongo(); // Connexion sur localhost:27017

 

Choisir la bases de données sur laquelle travailler

Comme pour MySQL, nous devons spécifier quelle base utiliser: