Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Maîtrisez les bases de données NoSQL

Questions sur l'exercice "MONGODB"

    15 novembre 2017 à 17:33:37

    Bonjour,

    Je suis en train de faire l'activité "Créez et interrogez votre base de données MongoDB".

    J'ai besoin svp d'éclaircissements sur la question  4 :) :

    Filtrez les listes de commentaires (reviews) des lieux, pour lesquelles au moins un commentaire (reviews) est écrit en anglais (en) et a une note (rank) supérieure à 3 (attention, LE commentaire en anglais doit avoir un rang de 3 et plus) ;

    1- Il est écrit "rank" alors qu'il s'agit de "rating" (reviews.rating) non ?

    2- Ensuite il faut récupérer :

    • les lieux avec au moins une "reviews.langage" en "en"
    • ET/OU :
    • un "reviews.rating" > "3", peu importe le langage donc !. 


    De plus, le(s) lieu(x) qui a(ont) un "reviews.language" en "en" doit(vent) avoir un "reviews.rating" >=3. Un, ou tous ?


    Je ne me trompe pas ?

    Merci

    F.

    -
    Edité par __fabrice 16 novembre 2017 à 12:07:56

    • Partager sur Facebook
    • Partager sur Twitter
      16 novembre 2017 à 15:23:23

      Bonjour __fabrice,

      Effectivement, il faut bien lire "rating" est non "rank". Par contre je ne comprends pas la suite de ta question, et l'énoncé me semble clair : "Filtrez les listes de commentaires des lieux, pour lesquelles au moins un commentaire est écrit en anglais et a une note supérieure à 3".

      • Partager sur Facebook
      • Partager sur Twitter
        20 novembre 2017 à 13:52:53

        Bonjour Régis,

        Oui, vous avez raison, mais la suite de la phrase porte peut-etre à confusion :) :

        (attention, LE commentaire en anglais doit avoir un rang de 3 et plus)

        -
        Edité par __fabrice 20 novembre 2017 à 13:53:22

        • Partager sur Facebook
        • Partager sur Twitter
          20 novembre 2017 à 15:03:53

          C'est vrai, j'avais lu trop vite : il faut effectivement lire "3 ou plus". On va procéder à la modification. Merci d'avoir fait remonter l'info !
          • Partager sur Facebook
          • Partager sur Twitter
            21 novembre 2017 à 10:44:22

            Bonjour,

            De rien, cela m'a fait plaisir :).

            Je vais finir les activités alors.

            Super votre cours, en passant :)

            Merci.

            Fabrice

            PS : Autre chose, vous n'auriez pas un tuto prévu pour Neo4J sur OC par hasard ? (j'ai pleinS de problèmeS en l'utilisant sous Windows avec (ou sans d'ailleurs) une VM vagrant...

            • Partager sur Facebook
            • Partager sur Twitter
              23 novembre 2017 à 10:22:20

              Non, je ne connais pas bien Neo4J. Par contre je suis un peu surpris que tu utilises Windows pour tester Neo4J : en production tu n'utiliseras pas un serveur Windows, n'est-ce pas ? Donc autant travailler sous Unix dès le départ.
              • Partager sur Facebook
              • Partager sur Twitter
                23 novembre 2017 à 11:51:16

                Salut,

                En fait, je suis sur Windows en milieu professionnel, mais je ne bosse qu'avec des VM Linux. Même sous mon Ubuntu, j'utilise aussi des VM :), c'est tellement pratique.

                Je n'ai pas encore eu de le temps de tester sur mon PC "perso".

                Neo4J est un concept de BDD graphes qui attise vraiment ma curiosité !. Je vais m'y plonger.

                Merci.

                • Partager sur Facebook
                • Partager sur Twitter
                  16 janvier 2018 à 19:26:53

                  Bonsoir,

                  je suis le cours "Maîtrisez les bases de données NoSQL", je rencontre juste un petit problème: quelle est la commande à utiliser pour "tuer" le serveur PRIMARY ? C'est vraiment la seule chose qui me pose problème dans ce cours que je suis avec beaucoup d'intérêt et de plaisir.

                  Merci pour vos éclaircissements,

                  Bien à vous,

                  Philippe

                  • Partager sur Facebook
                  • Partager sur Twitter
                  La chute n'est pas un échec, l'échec c'est de rester là où on est tombé!
                    17 janvier 2018 à 14:31:28

                    @Philippe2463 : Vous parlez de MongoDb ou ElasticSearch ? Sous Ubuntu, mongodb est lancé sous forme de service. Il me suffit d'exécuter "sudo service mongodb stop" pour arrêter MongoDb.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 janvier 2018 à 14:37:07

                      Bonjour Régis,

                      Je parle de MongoDB et je suis sur Mac comme Nicolas dans la vidéo mais la commande n'est pas visible sur celle-ci.

                      -
                      Edité par Philippe2463 17 janvier 2018 à 14:53:40

                      • Partager sur Facebook
                      • Partager sur Twitter
                      La chute n'est pas un échec, l'échec c'est de rester là où on est tombé!
                        18 janvier 2018 à 18:52:52

                        Dans ce cas, la commande

                            db.shutdownServer()

                        devrait suffire (dans un shell mongodb).

                        Si ce n'est pas le cas, essayez donc d'exécuter "brew services stop mongodb" (d'après https://stackoverflow.com/questions/8495293/whats-a-clean-way-to-stop-mongod-on-mac-os-x).

                        -
                        Edité par RégisB. 18 janvier 2018 à 18:53:49

                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 janvier 2018 à 19:04:14

                          Merci Régis,

                          ça marche avec "db.shutdownServer()" en faisant "use admin", juste avant, ou tout simplement CTRL+c !

                          Par contre, dans l'activité, au niveau de l'énoncé des questions 2 et 3, il y a une légère coquille, en effet, il est question de lieux de "type" "accommodation" alors que "accommodation" est plutôt une "category" !

                          Cordialement,

                          Philippe

                          -
                          Edité par Philippe2463 31 janvier 2018 à 17:00:36

                          • Partager sur Facebook
                          • Partager sur Twitter
                          La chute n'est pas un échec, l'échec c'est de rester là où on est tombé!
                            6 février 2018 à 15:47:05

                            Bonjour,

                            Dans la partie etude d'elasticsearch:

                            J'ai eu l'erreur suivante avec la commande : curl -XPUT localhost:9200/_bulk --data-binary @movies_elastic.json

                            {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}
                            Que faut-il faire ?

                            Merci d'avance,
                            Anne-Lise
                            • Partager sur Facebook
                            • Partager sur Twitter
                              6 février 2018 à 19:36:54

                              Bonsoir pour que ça fonctionne, j'ai fait ceci
                              curl -XPUT -H 'Content-Type:application/x-ndjson' localhost:9200/_bulk --data-binary @movies_elastic.json

                              Bien à toi,

                              Philippe C

                              • Partager sur Facebook
                              • Partager sur Twitter
                              La chute n'est pas un échec, l'échec c'est de rester là où on est tombé!
                                7 février 2018 à 9:19:42

                                Est-ce que ça ne serait pas plutôt "-H 'Content-Type: application/json'" ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  7 février 2018 à 12:45:30

                                  Merci pour vos retours rapides.

                                  Je confirme que la commande suivante a bien fonctionné pour moi:

                                  curl -XPUT -H "Content-Type: application/json"  localhost:9200/_bulk --data-binary @movies_elastic.json

                                  Egalement au niveau de la commande avec pretty, j'ai fait cela :

                                  http://localhost:9200/movies/?=pretty

                                  http://localhost:9200/movies/?pretty

                                  Par contre dans le fichier mapping.json de l'archive pour actors on a le type "String", et cela ne semble pas être supporté. Je pense qu'il faut mettre "text", comme ce qui est indiqué dans la copie d'écran du cours.

                                  {

                                      "mappings" : {

                                        "movie" : {

                                          "properties" : {

                                            "fields" : {

                                              "properties" : {

                                                "actors" : {

                                                  "type" : "string",

                                                  "fields" : {

                                                    "raw" : {

                                                      "type" : "string",

                                                      "index" : "not_analyzed"

                                                    }

                                  J'ai encore des difficultés pour importer le nouveau fichier de mapping.
                                  En faisant un copier-coller du nouveau mapping qui est présenté dans le cours, j'obtiens, cette erreur:
                                  {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"unknown s
                                  etting [index.movies2.mappings.movie.properties.fields.properties.actors.fields.
                                  raw.type] please check that any required plugins are installed, or check the bre
                                  aking changes documentation for removed settings"}],"type":"illegal_argument_exc
                                  eption","reason":"unknown setting [index.movies2.mappings.movie.properties.field
                                  s.properties.actors.fields.raw.type] please check that any required plugins are
                                  installed, or check the breaking changes documentation for removed settings"},"s
                                  tatus":400}
                                  Comment avez-vous fait ?

                                  Merci

                                  Anne-Lise

                                  -
                                  Edité par Anne-LisePellieux 7 février 2018 à 14:54:54

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    11 février 2018 à 12:09:09

                                    Bonjour, je bloque également sur la compréhension de la question 4 dans l'exercice MongoDB, que je ne trouve décidément pas très claire.

                                    "4. Filtrez les listes de commentaires (reviews) des lieux, pour lesquelles au moins un commentaire (reviews) est écrit en anglais (en) et a une note (rating) supérieure à 3 (attention, LE commentaire en anglais doit avoir un rang de 3 ou plus) ;"

                                    Je me demandais pourquoi il parle de "rang" à la fin de la question, j'imagine d'après ce que vous dites que c'est en fait le rating (la note) ?

                                    Également, est-ce qu'il faut bien afficher toute la liste de commentaires pour un lieu donné, même si un seul est en anglais et a une note >=2, ou bien seulement ceux dans la liste qui sont en anglais et qui ont une note >=3 ? Je pense comprendre que c'est toute la liste, mais dans ce cas je ne comprends pas bien comment faire.

                                    Merci d'avance.

                                    EDIT : En fait j'ai trouvé, je pense que c'était bien toute la liste contenant au moins un élément correspondant aux deux conditions et j'ai retrouvé dans le cours précédent comment faire :)

                                    -
                                    Edité par asmoth 11 février 2018 à 12:40:37

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      23 février 2018 à 22:04:53

                                      Bonjour,

                                      J'ai la même erreur qu'Anne-Lise pour loader mapping.json.

                                      Après plusieurs recherches/commandes différentes, rien n'y fait...

                                      Y'a-t-il une correction à appliquer?

                                      Merci

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        3 mars 2018 à 12:19:25

                                        @FlorensSeine1 @Anne-LisePellieux Vous utilisez bien la version 5.6.2 d'elasticsearch, comme préconisé dans le cours ?
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          3 mars 2018 à 19:41:12

                                          Bonjour,

                                          Je suis sur la config pour instancier un ReplicaSet sous windows 10, et j'ai une erreur lors de l'ajout des deux autres serveurs lorsque je tape la commande suivante :

                                          rs.add("local:27019");
                                          le message est le suivant :
                                          rs0:PRIMARY> rs.add("localhost:27019");
                                          {
                                          "ok" : 0,
                                          "errmsg" : "Quorum check failed because not enough voting nodes responded; required 2 but only the following 1 voting nodes responded: localhost:27018; the following nodes did not respond affirmatively: localhost:27019 failed with Received heartbeat from member with the same member ID as ourself: 0",
                                          "code" : 74,
                                          "codeName" : "NodeNotFound",
                                          "operationTime" : Timestamp(1519923676, 1),
                                          "$clusterTime" : {
                                          "clusterTime" : Timestamp(1519923676, 1),
                                          "signature" : {
                                          "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                                          "keyId" : NumberLong(0)
                                          }
                                          }
                                          }

                                          Merci pour votre support, je suis vraiment bloqué à ce niveau.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            4 mars 2018 à 9:13:27

                                            @RegisB. J'étais en 6.2.2. Du coup j'ai downgradé en 5.62 quand même:

                                            { "name" : "reBXumP", "cluster_name" : "elasticsearch", "cluster_uuid" : "fnIi9_iHRd-MZxstVFCHlQ", "version" : { "number" : "5.6.2", "build_hash" : "57e20f3", "build_date" : "2017-09-23T13:16:45.703Z", "build_snapshot" : false, "lucene_version" : "6.6.1" }, "tagline" : "You Know, for Search" }

                                            Mais j'ai toujours pareil:

                                            {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"unknown setting [index.movies2.mappings.movie.properties.fields.properties.actors.fields.raw.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"}],"type":"illegal_argument_exception","reason":"unknown setting [index.movies2.mappings.movie.properties.fields.properties.actors.fields.raw.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"},"status":400}

                                            -
                                            Edité par FlorensSeine1 4 mars 2018 à 9:13:40

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              9 mars 2018 à 23:53:45

                                              @RégisB. et @FlorensSeine1,

                                              J'ai mis la 5.6.2 d'elasticsearch. L'insertion des index movies et movies2 fonctionnent. J'ai juste du changer un paramètre sur la mémoire de la VM pour que Elasticsearch puisse se lancer.(-Xms2g ---> -Xms200m)


                                              Merci

                                              -
                                              Edité par Anne-LisePellieux 9 mars 2018 à 23:54:13

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                12 mars 2018 à 6:39:46

                                                Bonjour,

                                                J'aurais voulu faire des tests avec d'autres fichiers json.

                                                Donc j'ai récupéré un fichier de tweets, dans lequel chaque entrée est de cette forme:

                                                {"user":{"name":"Edgar Castrejon","followersCount":145},
                                                "text":"@AngelMCastillo @nerdgirlcomedy it was Voyager",
                                                "lang":"en",
                                                "createdAt":1456213157000,"mentions":["nerdgirlcomedy","AngelMCastillo"],
                                                "htags":[],
                                                "links":[]
                                                }

                                                Quelle est la méthode pour le mettre sous la formeindex, type, fields vue dans le cours?

                                                Je pense qu'il doit y en avoir une car l'exemple du cours n'était pas non plus dans la bonne forme:

                                                {
                                                
                                                 "title" : "Star Wars",
                                                
                                                 "directors" : ["George Lucas"],
                                                
                                                 "release_date" : "1977-05-25T00:00:00Z",
                                                
                                                 "rating" : 8.7,
                                                
                                                 "genres" : ["Action","Adventure","Fantasy","Sci-Fi"],
                                                
                                                 "plot" : "Luke Skywalker joins forces with a Jedi Knight, a cocky pilot, a wookiee and two droids to save the universe from the Empire's world-destroying battle-station, while also attempting to rescue Princess Leia from the evil Darth Vader.",
                                                
                                                 "image_url" : "http://ia.media-imdb.com/images/M/MV5BMTU4NTczODkwM15BMl5BanBnXkFtZTcwMzEyMTIyMw@@._V1_SX400_.jpg",
                                                
                                                 "rank" : 226,
                                                
                                                 "running_time_secs" : 7260,
                                                
                                                 "actors" : ["Mark Hamill","Harrison Ford","Carrie Fisher"],
                                                
                                                 "year" : 1977
                                                
                                                }

                                                Mais je n'arrive pas à trouver dans la documentation d'Elasticsearch...

                                                Bonne journée,

                                                Jérome.

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Jérôme.
                                                  12 mars 2018 à 20:08:06

                                                  hbelkacemi a écrit:

                                                  Bonjour,

                                                  Je suis sur la config pour instancier un ReplicaSet sous windows 10, et j'ai une erreur lors de l'ajout des deux autres serveurs lorsque je tape la commande suivante :

                                                  rs.add("local:27019");
                                                  le message est le suivant :
                                                  rs0:PRIMARY> rs.add("localhost:27019");
                                                  {
                                                  "ok" : 0,
                                                  "errmsg" : "Quorum check failed because not enough voting nodes responded; required 2 but only the following 1 voting nodes responded: localhost:27018; the following nodes did not respond affirmatively: localhost:27019 failed with Received heartbeat from member with the same member ID as ourself: 0",
                                                  "code" : 74,
                                                  "codeName" : "NodeNotFound",
                                                  "operationTime" : Timestamp(1519923676, 1),
                                                  "$clusterTime" : {
                                                  "clusterTime" : Timestamp(1519923676, 1),
                                                  "signature" : {
                                                  "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                                                  "keyId" : NumberLong(0)
                                                  }
                                                  }
                                                  }

                                                  Merci pour votre support, je suis vraiment bloqué à ce niveau.

                                                  Pareil je suis dans le même cad
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  La santé avant tout !

                                                    12 mars 2018 à 21:22:33

                                                    Anne-LisePellieux a écrit:

                                                    @RégisB. et @FlorensSeine1,

                                                    J'ai mis la 5.6.2 d'elasticsearch. L'insertion des index movies et movies2 fonctionnent. J'ai juste du changer un paramètre sur la mémoire de la VM pour que Elasticsearch puisse se lancer.(-Xms2g ---> -Xms200m)


                                                    Merci

                                                    -
                                                    Edité par Anne-LisePellieux 9 mars 2018 à 23:54:13


                                                    Tu es sous linux?

                                                    Je voulai tenter d'aller a contre-courant et réussir à tout faire tourner sous Windows, mais je vais me faire une raison...

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      14 mars 2018 à 10:41:36

                                                      FlorensSeine1, pardon lit mon com, ça fait 3 jours que j'arrive pas à ajouter les 2 serveurs secondaires à mon réplicaSet
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      La santé avant tout !

                                                        20 mars 2018 à 4:18:30

                                                        Bonjour,

                                                        Dans les réponses Elasticsearch, nous avons toujours les termes "doc_count_error_upper_bound" et "sum_other_doc_count". A quoi cela correspond t il  ?

                                                        -
                                                        Edité par laminesalsa 20 mars 2018 à 4:21:45

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          4 février 2019 à 15:12:02

                                                          Bonjour,

                                                          Je suis actuellement dans la séquence "Distribuez vos données avec MongoDB et je tape "mongo --port 27017" dans une nouvelle console et lorsque j'essaye de rajouter les shards j'obtiens comme erreur ceci : 

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          MOOC Maîtrisez les bases de données NoSQL

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                          • Editeur
                                                          • Markdown