2011-08-23 3 views
1

MongoDB를 가지고 있는데, 잘 작동하는 'Country'를 사용하여 데이터베이스를 쿼리 할 수 ​​있습니다. 그러나 이제는 자유 텍스트로 '제목'필드를 검색하려고합니다. SQL에서와 마찬가지로 제목 LIKE '% 제목 %'MongoDB 데이터베이스, LIKE를 이용한 쿼리

BasicDBObject query = new BasicDBObject(); 
    query.put("country", country); 
    query.put("title", %title%); 
    DBCursor cursor = collection.find(query); 

어떻게 MongoDB를 함께 할 것입니다 WHERE?

도움 주셔서 감사합니다.

+0

중복 코드 http://stackoverflow.com/questions/3305561/how-to-query-mongodb-with-like – Xaerxess

+0

어떻게 코드를 작성하나요? BasicDBObject query = new BasicDBObject(); query.put ("country", country); query.put ("title",/title/i); ?????????? –

답변

4

당신은 /title/i 작동합니다 귀하의 경우에는 regular expressions 을 사용할 수 있습니다 (쿼리는 일반적으로 대소 문자를 구분 같이 MySQL을로,/i를 의미 대소 문자를 구분하지 일치)

+0

감사합니다. 이 코드를 어떻게 작성합니까? BasicDBObject query = new BasicDBObject(); query.put ("country", country); query.put ("title",/title/i); ?????????? –

0

사용이 이 패턴 자바 정규 표현식

입니다
Pattern title = Pattern.compile("title"); 
BasicDBObject dbc=new BasicDBObject(); 
dbc.put("title", title); 
DBCursor cursor = collection.find(query); 

이것은 당신이 변수의 키워드를 가지고 있다면 .. 그것

0

시도 작동합니다 ...

,
Model.find({ FIELD_NAME : { $regex: KEYWORD, $options: 'i' }}); 

방금 ​​문자열로 키워드를 가지고 있다면 ...

Model.find({ FIELD_NAME : /string/i }); 

가 WHERE FIELD_NAME의 LIST = KEYWORD 모델 SELECT *처럼 작동합니다.

'i'는 대소 문자를 구분하지 않으므로 단어를 검색 할 수 있도록 대소 문자를 구분합니다.

관련 문제