find나 find_one에서 어떻게 특정 문자열을 contain한 결과물을 가져올까? 했는데 정규식을 사용하면 된다.
import re
text='주식캔 연어왈 연어좋아'
title = '좋아'
p = re.compile(f'.*{title}.*')
m = p.match(text)
m.group()
>>> 주식캔 연어왈 연어좋아
title이라는 변수가 포함되면 text를 반환하는 정규식 코드다.
food_col = db.collection # pymongo 사용
def searchbytitle(title):
foodlist = []
findfood = food_col.find({"title":{'$regex':f'.*{title}.*'}})
for f in findfood:
foodlist.append(f)
return foodlist
이렇게 하면 title이라는 변수에 해당하는 문자열이 포함되는 항목들을 리스트에 넣어 반환해 준다.
다만 "보레알 연어맛 져키 프리미엄" 같은 항목이 있을 때,
"보레알 프리미엄" 으로 검색하면 결과가 안 나온다.
"보레알 연어맛" "져키 프리미엄" 등으로 검색하면 리턴된다.
이 부분은 해결하면 추가하겠음!
'개발' 카테고리의 다른 글
gcp jupyter notebook에서 url 사용하여 xml 파일 파싱하기 (0) | 2021.11.14 |
---|---|
코랩 프로+, colab pro plus 요금제 사용기 (6) | 2021.08.16 |
VS Code 터미널 안 될때 해결법 (0) | 2021.05.30 |
파이썬으로 AWS Dynamodb 쉽게 연결하고 데이터 넣기 (0) | 2021.05.29 |
MongoDB CRUD 쿼리 (0) | 2021.05.15 |