+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Expert éminent sénior

    Avatar de Francis Walter
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2012
    Messages
    2 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2012
    Messages : 2 317
    Points : 26 488
    Points
    26 488

    Par défaut Introduction à la base de données NoSQL MongoDB

    Bonjour,

    Je vous présente un tutoriel qui initie aux bases de données NoSQL avec MongoDB :


    Citation Envoyé par Synopsis
    Vous avez déjà sûrement entendu parler du NoSQL et des SGBD comme CASSANDRA. En informatique, NoSQL (Not only SQL en anglais) désigne une catégorie de systèmes de gestion de bases de données (SGBD) qui n'est plus fondée sur l'architecture classique des bases relationnelles. L'unité logique n'y est plus la table, et les données ne sont en général pas manipulées avec SQL.
    Parmi les nombreux SGBD faisant partie de la mouvance NoSQL se trouve MongoDB. MongoDB (de l'anglais humongous qui peut être traduit par «*énorme*») est un système de gestion de bases de données orientées documents, répartissables sur un nombre quelconque d'ordinateurs et ne nécessitant pas de schéma prédéfini des données. Il est écrit en C++ et distribué sous licence AGPL.
    Le but de ce tutoriel est de nous donner les notions de base pour l’utilisation de ce SGBD de manière générale.
    Vous avez envie de contribuer au sein du Club Developpez.com ?

    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, ...etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Membre éclairé

    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    septembre 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : septembre 2007
    Messages : 200
    Points : 714
    Points
    714

    Par défaut

    Bonjour
    Merci pour ce tuto, très clair pour les débutants). Il y a encore quelques petites typo :

    - page 11 : "show dbs", le show devrait être en gris
    - page 12 : "User bdtest" -> "use bdtest"
    - page 9 : md ne fonctionne pas, il faut les droit administrateur (perso, je ne sais pas comment faire pour les avoir, j'ai fait avec l'explorateur win pour créer les répertoires)

    Je finis de le lire dans l'apres midi pour la suite.

  3. #3
    Membre éclairé

    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    septembre 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : septembre 2007
    Messages : 200
    Points : 714
    Points
    714

    Par défaut

    - Page 12 : "Help" -> "help"

    Page 11 : "insérer des documents dans une collection" : qu'est ce qu'une collection ? Perso, c'est mon premier document sur les BD, donc je ne sais pas. Après, si je devais deviner, je dirais qu'une base de données se découpe (se structure) en collection, c'est ca ? Et donc que testdata est une collection ? Mais un peu de précision pourrait être utile (je pars biens sur du principe, affiché au départ, que c'est un tuto pour débutants) . Par exemple :
    - la création de collection est-elle obligatoire ou peut-on s'en passer et ajouter directement des enregistrements dans "bdtest" ?
    - Peut-on créer des sous-collections ? Des sous-sous-collection ?

  4. #4
    Membre éprouvé
    Avatar de landry161
    Homme Profil pro
    C#,PHP,MySQL,Android...
    Inscrit en
    juillet 2010
    Messages
    407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : C#,PHP,MySQL,Android...

    Informations forums :
    Inscription : juillet 2010
    Messages : 407
    Points : 1 014
    Points
    1 014
    Billets dans le blog
    1

    Par défaut

    Vois la collection comme une table et les documents comme les enregistrements de cette table.

  5. #5
    Membre éprouvé
    Avatar de landry161
    Homme Profil pro
    C#,PHP,MySQL,Android...
    Inscrit en
    juillet 2010
    Messages
    407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : C#,PHP,MySQL,Android...

    Informations forums :
    Inscription : juillet 2010
    Messages : 407
    Points : 1 014
    Points
    1 014
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par Christophe Genolini Voir le message
    - page 12 : "User bdtest" -> "use bdtest"
    Tout à fait.

  6. #6
    Membre éclairé

    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    septembre 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : septembre 2007
    Messages : 200
    Points : 714
    Points
    714

    Par défaut

    1/ J'ai un peu du mal a comprendre le cursor.
    Si je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var c = db.testData.find()
    c
    J'ai le résultat de db.testData.find() qui s'affiche.

    Si je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var c = db.testData.find()
    c[5]
    j'ai le 5° élément qui s'affiche.

    Mais je ne peux pas taper :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var c = db.testData.find()
    c
    c[5]
    ?

    2/ Si j'ai bien compris, MongoDB est un ECV et est donc basé sur un système "clef-valeur"'. Dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    { "_id" : ObjectId("5645ef197ff3eb68424944e9"), "x" : 2 }
    la clef, c'est "x" et la valeur c'est "2" ?
    Ou bien la clef c'est "5645ef197ff3eb68424944e9" et la valeur c'est "x:2" ?

    Christophe

  7. #7
    Membre habitué

    Homme Profil pro
    Ingénieur Informaticien
    Inscrit en
    juillet 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur Informaticien
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2010
    Messages : 22
    Points : 178
    Points
    178

    Par défaut

    Salut à Tous,

    Merci Christophe Genolini pour les remarques et corrections. Une mise à jour de l'article sera plubliée d'ici peu.
    La commande md permet de créer un repertoire (et aussi avec ses sous repertoire). Si vous voulez créer un repertoire dans un emplacement qui nécessite des droits administrateur, il faudra lancer votre invite de commande avec des droit administrateur:

    Boutton Démarrer --> Taper CMD --> Clic droit sur le résultat de la recherche (cmd bien entendu) --> clic sur "lancer en tant que administrateur".

  8. #8
    Membre habitué

    Homme Profil pro
    Ingénieur Informaticien
    Inscrit en
    juillet 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur Informaticien
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2010
    Messages : 22
    Points : 178
    Points
    178

    Par défaut

    Concernant la question sur les collections:

    Comme il a déjà été dit plus haut, il faut voir la collections en mongodb comme la table en sql.
    Une collection est juste un ensemble de documents. Il n'est donc pas possible d'insérer un documents dans la BD en se passant de la collection. Tout document doit appartenir à une collection.

  9. #9
    Membre habitué

    Homme Profil pro
    Ingénieur Informaticien
    Inscrit en
    juillet 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur Informaticien
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2010
    Messages : 22
    Points : 178
    Points
    178

    Par défaut

    Concernant la première question sur "Cursor":

    Comme il a été dit dans le tuto, Cursor permet de faire une itération sur le résultat d'une requête. lors d'une requête, cet object cursor peut être affecté à une variable, par exemple: var c = db.testData.find()
    C'est un constat que j'ai fais, je ne peux vraiment pas donner d'explications plus claires; cette variable c se comporte comme une mémoire tampon. La première opération la vide de son contenu. Raison pour la quelle au niveau de l'exécution des instructions suivante:
    var c = db.testData.find()
    c
    c[5]

    c[5] n'affiche aucun résultat, car la variable c ne contient plus le cursor.

    Pour l'instant, je n'ai pas d'idées claires à ce sujet. J'y reviendrai peut-être.

  10. #10
    Membre habitué

    Homme Profil pro
    Ingénieur Informaticien
    Inscrit en
    juillet 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur Informaticien
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juillet 2010
    Messages : 22
    Points : 178
    Points
    178

    Par défaut

    Concernant la deuxième question sur "Cursor".

    Comme vous l'avez vous même dit, MongoDB fonctionne sous le système Clé-Valeur. Pour le document suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    { "_id" : ObjectId("5645ef197ff3eb68424944e9"), "x" : 2 }
    nous avons deux couples clé-valeur:
    1. "_id" : ObjectId("5645ef197ff3eb68424944e9"): la clé ici est "_id" et la valeur est ObjectId("5645ef197ff3eb68424944e9")
    2. "x" : 2: La clé ici est "x", et la valeur est 2


    Comme il a été dit dans le tuto, tout enregistrement doit comporté un champ id. S'il n'est pas définit par l'utilisateur, il est créé automatiquement. Raison pour laquelle vous le voyez dans votre document.

Discussions similaires

  1. Introduction à la base de données NoSQL Cassandra
    Par Mickael Baron dans le forum NoSQL
    Réponses: 2
    Dernier message: 15/04/2014, 00h12
  2. Introduction à la base de données NoSQL Cassandra
    Par Mickael Baron dans le forum Autres SGBD
    Réponses: 0
    Dernier message: 12/08/2012, 00h16
  3. Conception pour base de données NoSQL
    Par lcfseth dans le forum ALM
    Réponses: 5
    Dernier message: 01/08/2011, 21h25
  4. Réponses: 19
    Dernier message: 16/08/2010, 01h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo