티스토리 뷰

728x90
반응형

 

 

아래와 같은 데이터들이 몽고DB에 저장되어있을 때 검색조건

 

{'title': '돔돔이에요', 'content': '안녕하세요 돔돔이입니다.' , 'num': 12345 },
{'title': '안녕하세요 저도 돔돔이에요' , 'content': '안녕하세요. 반갑습니다^^.' , 'num': 12346},
{'title': '흠....' , 'content': '저녁은 모먹지?', 'num': 23412 }, 
{'title': '으으음...' , 'content': '으으으음..........' , 'num': 23000},
{'title': '리스트', 'content': ['돔돔이1','돔돔이2','돔돔이3','돔돔이4','돔돔이5'], 'num': 19000 }

 

1. 특정 단어가 들어간 데이터 검색: $regex

> db.collection.find({ 'content': {'$regex': '안녕'} })

> 추출된 데이터

{'title': '돔돔이에요' , 'content': '안녕하세요 돔돔이입니다.' },

{'title': '안녕하세요 저도 돔돔이에요' , 'content': '안녕하세요. 반갑습니다^^.' },

 

 

2. title과 content 모두에 특정단어가 들어간 데이터 검색: $and + $regex 

> db.collection.find({'$and': [ {'title':{'$regex':'안녕'}},{'content':{'$regex':'안녕'}} ]})

> 추출된 데이터

{'title': '안녕하세요 저도 돔돔이에요' , 'content': '안녕하세요. 반갑습니다^^.' }

 

 

3. 특정 단어가 들어가있는 데이터는 제외하고 검색:  $nor + $regex

> db.collection.find({'$nor': [ {'content':{'$regex':'안녕'}} ]})

> 추출된 데이터

{'title': '흠....' , 'content': '저녁은 모먹지?', 'num': 23412 }, 
{'title': '으으음...' , 'content': '으으으음..........' , 'num': 23000},
{'title': '리스트', 'content': ['돔돔이1','돔돔이2','돔돔이3','돔돔이4','돔돔이5'], 'num': 19000 }

 

 

4. 리스트안에 특정 키워드가 존재하는 데이터 검색: $in  <->  $nin

> db.collection.find({'content': {'$in': ['돔돔이1']} })

> 추출된 데이터

{'title': '리스트', 'content': ['돔돔이1','돔돔이2','돔돔이3','돔돔이4','돔돔이5']}

 

 

5. 값 검색:  값< : "$lt"  ,    값<= : "$lte"  ,  값> : "$gt"  ,  값 >= : "$gte"

> db.collection.find({ 'num': {'$gte': 20000 })

> 추출된 데이터

{'title': '흠....' , 'content': '저녁은 모먹지?', 'num': 23412 }, 
{'title': '으으음...' , 'content': '으으으음..........' , 'num': 23000}

728x90
반응형
댓글