[スパルタコードクラブ]ネットワーク開発総合クラス-第3週(5)


3-14 Quiz Webスクリプトの使用結果


Ⅰ.映画祭のカタログ「ハッカー帝国」の採点を獲得

  • 正解
  • from pymongo import MongoClient
    client = MongoClient('localhost', 27017)
    db = client.dbsparta
    
    target_movie = db.movies.find_one({'title':'매트릭스'})
    print (target_movie['star'])
    
  • 私のコード
  • from pymongo import MongoClient
    client = MongoClient('localhost', 27017)
    db = client.dbsparta
    
    matrix = db.movies.find_one({'title': '매트릭스'}, {'_id': False})
    print(matrix['star'])
    💯

    Ⅱ.'「マトリックス」と同じスコアの映画名を獲得

  • 正解
  • movie = db.movies.find_one({'title':'매트릭스'})
    target_star = movie['star']
    
    target_movies = list(db.movies.find({'star':target_star},{'_id':False}))
    
    for target in target_movies:
        print(target['title'])
    movie = db.movies.find_one({'title':'매트릭스'})
    target_star = movie['star']
    movie:titleは「マトリクス」の特定の値の変数です
    target star:movieのstar値を表す変数
    target_movies = list(db.movies.find({'star':target_star},{'_id':False}))
    movieのstar値はtarget moviesというリストとして定義されます
    for target in target_movies:
        print(target['title'])
    target moviesリストのdictionaryをtargetという個別の値に指定します.
    targetのタイトルのみ出力
  • 私のコード
  • same_star = list(db.movies.find({'star':'9.39'},{'_id':False}))
    for movie in same_star:
        print(movie['title'])
    3段階で出力された答えとは異なり、findにstat値9.39の条件を最初から与えた.出力時の結果は両方同じです.しかし、先生のように、何度も変数を使って各要素を定義すべきですか?実はよくわかりません...🤔 正直に言って、答えコードの変数が多すぎて、长すぎて、少し混同しています.私が書いたコードはもっと直感的で、短くて、もっと簡単に見えると思いますが、それは結局私の考えです.^^先生も私のように書けないわけではありません.もっと長く書かなければならないなら、現職の開発者から見れば、これはもっと良いコードだと思います.うん...わかりません.知らなかった...複雑なコードの世界...

    Ⅲ.マトリックスムービーを0に評価

  • 正解
  • db.movies.update one({“title”:“行列”},{“$set”:{“スター”:“0”})
  • 私のコード
  • db.movies.update one({“title”:“マトリクス”},{“$set”:{“star”:0})
    間違った答えではありません.でも…!
    「ハッカー帝国」の採点は#で、「人生は美しい」と「一等兵を救う」の採点は「.マトリクス>スコア更新時に0を数字列に書いたからです.数字を文字列として認識するには引用符をつけなければならない.これは、データをより効率的に管理するためです.
    を例にとると、出力スター値が9.37の映画が想定される.文字列で出力すると、「ハンターキラー」、「エカンスピック」、「東柱」、「指輪王:王の帰り」だけが出力されます.
    逆に数字列で出力すれば、「故詩人の社会」と「レオン」だけだ.
    最終的には、すべて出力するには、文字列と数値列を別々に出力してマージする必要があります.このようなトラブルを防止するために、文字列に統一します.