프로젝트 개발하기 #7 - 리스트 추출하기

HYOJIN·2020년 11월 18일
0

MOVIE NOTE PROJECT

목록 보기
7/8

개발순서

배우 TOP3 리스트 추출하기

  1. DB에 저장된 각 배우들의 빈도수 카운트하기

  2. TOP3에 해당되는 배우의 사진과 이름을 가져오기

상위 장르/배우 관련 리스트 추출하기

  1. 상위에 랭크된 장르와 배우의 데이터만 찾기

  2. 해당 장르와 배우의 리스트 3개만 뽑기

개발해보기

배우 TOP3 리스트 추출하기

1) DB에 저장된 각 배우들의 빈도수 카운트하기

@app.route('/actor', methods=['GET'])
def count_actor():
    actor = list(db.reviews.aggregate([

        {'$unwind':{'path':'$actors'}},
        {'$group':{'_id':'$actors', 'count':{'$sum':1}}},
        {'$sort':{'count':-1}},
        {'$limit':3}

    ]))
    # print(actor)

    return jsonify({'result': 'success', 'actor': actor })

2) TOP3에 해당되는 배우의 사진과 이름을 가져오기

function getActor() {

    $.ajax({
        type: "GET",
        url: "/actor",
        data: {},
        success: function (response) {
            if (response["result"] == "success") {
                let actor = response['actor'];

                let image_fir = actor[0]['_id']['image'];
                let actor_fir = actor[0]['_id']['actor'];
                let image_sec = actor[1]['_id']['image'];
                let actor_sec = actor[1]['_id']['actor'];
                let image_trd = actor[2]['_id']['image'];
                let actor_trd = actor[2]['_id']['actor'];

                let tempHtml = `<button class="actor_btn">
                                    <img class="actor_img"
                                         src="${image_fir}"
                                         alt="">
                                    <p class="actor_name">${actor_fir}</p>
                                </button>
                                <button class="actor_btn">
                                    <img class="actor_img"
                                         src="${image_sec}"
                                         alt="">
                                    <p class="actor_name">${actor_sec}</p>
                                </button>
                                <button class="actor_btn">
                                    <img class="actor_img"
                                         src="${image_trd}"
                                         alt="">
                                    <p class="actor_name">${actor_trd}</p>
                                </button>`

                $('#actors').append(tempHtml);
            }
        }
    })
}

상위 장르/배우 관련 리스트 추출하기

3) 상위에 랭크된 장르와 배우의 데이터만 찾기

    genre_list = list(db.reviews.find({'genre':{'$in':[genre[0]["_id"]]}}))
    print(genre_list)

    top_genre = []
    for genres in genre_list:
        print(genres['title'])
        top_genre.append(genres['title'])
    movie_list1 = list(db.reviews.find({'actors.actor':{'$in':[actor[0]["_id"]["actor"]]}}))

    top_movie1 = []
    for movies1 in movie_list1:
        print(movies1['title'])
        top_movie1.append(movies1['title'])

4) 해당 장르와 배우의 리스트 3개만 뽑기

let top_genre = response['top_genre']

                let genre1 = top_genre[0];
                let genre2 = top_genre[1];
                let genre3 = top_genre[2];

                let tempHtml = `<li>${genre1}</li>
                                <li>${genre2}</li>
                                <li>${genre3}</li>`

                $('#movie_list1').append(tempHtml);
profile
https://github.com/hyojin-k

0개의 댓글