Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Expert éminent sénior
    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é
    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.
    Christophe
    Porteur du projet R++ https://rplusplus.com
    YouTubeur https://www.youtube.com/c/lesstatsmemepasmal

  3. #3
    Membre éclairé
    - 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 ?
    Christophe
    Porteur du projet R++ https://rplusplus.com
    YouTubeur https://www.youtube.com/c/lesstatsmemepasmal

  4. #4
    Membre éclairé
    Vois la collection comme une table et les documents comme les enregistrements de cette table.

  5. #5
    Membre éclairé
    Citation Envoyé par Christophe Genolini Voir le message

    - page 12 : "User bdtest" -> "use bdtest"
    Tout à fait.

  6. #6
    Membre éclairé
    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
    Christophe
    Porteur du projet R++ https://rplusplus.com
    YouTubeur https://www.youtube.com/c/lesstatsmemepasmal

  7. #7
    Membre habitué
    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é
    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é
    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é
    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.

###raw>template_hook.ano_emploi###