SoShin_
소신
SoShin_
전체 방문자
오늘
어제
  • 분류 전체보기
    • Study
      • HTML | CSS
      • JavaScript
      • Django
      • Python
      • Flask
      • Git
      • Project
      • 이것저것
      • 코딩테스트
      • NestJS
    • Review
      • Book
      • Movie & Drama

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Django
  • openpyxl
  • 영화리뷰
  • 장고 유저기능
  • 영화추천
  • allauth
  • 플라스크
  • SQLAlchemy
  • flask orm
  • js
  • 파이썬
  • Django allauth
  • 위도경도
  • 자바스크립트
  • node.js
  • orm
  • db
  • JavaScript
  • KakaoAPI
  • SQLite
  • 장고
  • 유저기능
  • MongoDB
  • 문제풀이
  • 장고 제네릭뷰
  • FLASK
  • 코딩테스트
  • 장고 allauth
  • Python
  • Django 유효성 검증

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
SoShin_

소신

Study/Python

[ Python ] pymongo에서 문자열 포함 여부를 확인하는 방법

2021. 12. 27. 23:20
반응형

2021.12.17 - [Study/Flask] - [Flask] Flask에서 pymongo 사용하기!

 

[Flask] Flask에서 pymongo 사용하기!

현재 진행 중인 팀 프로젝트에서 서울의 여러 구에 있는 음식점이 저장되어 있는 csv 파일을 이용해서 이것을 서울의 5개의 권역으로 따로 묶어주기로 했다. [ 서북권, 도심권, 동북권, 서남권, 동

programmers-sosin.tistory.com

기존 pymongo에서 데이터를 뽑아 쓰는 와중에 검색 기능을 구현해야 할 일이 생겼다.

이때 검색기능을 구현할 때, 검색어를 받아 데이터 내부의 값과 비교시키니까 일치하는 경우에만 데이터가 나오는데 이때 검색어를 포함한 모든 것이 검색되게 만들고 싶어서 찾아보고, 그 결과를 작성해본다!


pymongo $regex 를 사용하여 문자열 포함 검색하기

search = request.form['search']
    search_shop = collection.find(
        {'$or': [{'자치구': {'$regex': search}}, 
                 {'업종': {'$regex': search}}, 
                 {'도로명주소': {'$regex': search}}, 
                 {'상호명': {'$regex': search}}]}, 
        {'_id': False, 'index': False, '연번': False})

위 코드는 입력받은 검색어를 가져와 search에 저장한 후, 그 값을 mongodb 데이터 값과 비교시키는 것입니다.

이때 '$or' 은 직관적이게 or 연산자를 말하는 것으로 지정하는 조건에 하나라도 해당하면 데이터를 가져오는 것이다.

그리고 이때 검색 조건을 보면 {'$regex' : search} 부분이 있는데 이때 이 부분이 만약 search라는 값이 '자치구' 칼럼에 존재한다면 그것을 가져와라 라는 것이다.

중요한 것은 그냥 {'자치구' : search }로 했을 경우에는 완벽하게 일치하는 경우에만 데이터를 가져오지만

'$regex'를 추가하여 작성하면 search의 데이터를 포함하고 있는 경우 또한 모두 다 가져올 수 있기 때문에 검색어의 정확도는 떨어져도 검색 범위를 넓힐 수 있는 효과가 있다.

 

반응형

'Study > Python' 카테고리의 다른 글

[Python] Kakao API를 이용하여 주소를 이용해 위도, 경도 알아내기  (0) 2021.12.30
[Python] Kakao API를 이용하여 주소를 이용해 위도, 경도 알아내기  (0) 2021.12.30
[Python] 크롤링과 스크래핑 ( crawling, scraping ) #2 [ BeutifulSoup : bs4 ]  (0) 2021.12.20
[Python] 크롤링과 스크래핑 ( crawling, scraping ) #1 [ requests]  (0) 2021.12.20
[Python] Openpyxl과 네이버 Geocoding을 이용한 위도경도 변환하기  (0) 2021.12.16
    'Study/Python' 카테고리의 다른 글
    • [Python] Kakao API를 이용하여 주소를 이용해 위도, 경도 알아내기
    • [Python] Kakao API를 이용하여 주소를 이용해 위도, 경도 알아내기
    • [Python] 크롤링과 스크래핑 ( crawling, scraping ) #2 [ BeutifulSoup : bs4 ]
    • [Python] 크롤링과 스크래핑 ( crawling, scraping ) #1 [ requests]
    SoShin_
    SoShin_
    직접 쓰는 개발 블로그

    티스토리툴바