티스토리 뷰

TIL

몽고DB 없는 값 확인

호호홍얍얍 2022. 5. 12. 12:38

검색결과가 없을 때, 없다는 메시지를 띄워주려고 아래와 같이 코드를 짰다.

그런데 아무리 해도 안 되서, 서버에서 검사를 해주려고 했다.

{% if board == '' %}
    <span>검색 결과가 없습니다.</span>
{% else %}
    {% for doglist in board %}
                <h1>찾은 <span class="big">{{ doglist.dog_name }}</span>입니다 </h1>
                    <div class="row row-cols-1 row-cols-md-3 g-4">
                        <div class="col">
                            <div class="card h-100">
                                <img src="../static/dog%20.jpg" class="card-img-top" alt="귀여운 강아지 이미지">
                                <div class="card-body">
                                    <h5 class="card-title">{{ doglist.dog_name }} (하트)X{{ doglist.like }}</h5>
                                    <p class="card-text">{{ doglist.comment }}</p>
                                </div>
                            </div>
                        </div>
                    </div>
        {% endfor %}
{% endif %}

 

그런데, 서버에서도 무슨 짓을 해도 안 되는 것이다!

아래와 같이 for 문 안에서 어떤 형태로 boards의 하위 값을 찍어보려 해도 안 되었다.

@app.route('/searching/<keyword>')
def search(keyword):
    boards = db.board.find({'dog_name':keyword}, {'_id':False})
    for post in boards:
    	print(post)

 

그러고다보니, 어떤 분이 list로 감쌌던 게 생각이 나서, list로 감싸보니 드디어 빈 값 [] 이 찍혔다!!!

생각해보면, 몽고DB의 객체는 커서로 찍히던데, 그 커서 (주소?) 안에 아무 것도 없는 게 당연한 것 같기도 하다.

어쨌든 결과적으로 하위에 값이 있는지 검사하고자 할 때는 list로 감싸주자.

 

@app.route('/searching/<keyword>')
def search(keyword):
    boards = list(db.board.find({'dog_name':keyword}, {'_id':False}))
    if not boards:
        boards = 'empty'

'TIL' 카테고리의 다른 글

자바 - 단항연산자  (0) 2022.05.13
서버 환경 문제 대응  (0) 2022.05.13
git 관련 명령어 & 팁  (0) 2022.05.11
git 브랜치 변경하기  (0) 2022.05.11
jinja2로 검색 구현하기  (0) 2022.05.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함