2017-05-04 12 views
0

MongoDB 3.4

변수에 값이 있습니다. VAL1 = "포트 마이너"

나는 변수MongoDB : 변수를 사용하는 텍스트 검색 (완전 일치)

를 사용하여 컬렉션을 검색 할 텍스트 때

db.stores.insert([ 
    { _id: 1, name: "Java Hut", description: "Coffee and cakes" }, 
    { _id: 2, name: "Burger Buns", description: "Gourmet hamburgers" }, 
    { _id: 3, name: "Coffee Shop", description: "Just coffee" }, 
    { _id: 4, name: "Fort Coffee", description: "Discount clothing" }, 
    { _id: 5, name: "Java Shopping", description: "Indonesian goods" } 
]) 


으로 문서 (이름 필드에 텍스트 인덱스) 컬렉션 매장에서 검색해야

db.City.find({$text:{$search: val1}}) 

Fort가 포함되어 있으므로 _id : 4 문서를 반환합니다.

정확하게 일치하지만 변수를 사용해야합니다.

위의 검색은 반환해야 할 때 VAL1 = "요새 커피"

+0

db.City.find ({이름 : VAL1})

는 정규 표현식 가서,이 문제를 해결하려면이 –

+0

사용하지만 텍스트 검색을 할 필요가있다. –

답변

2

하면, 그것은 작업을 토큰 화 단어의 가장 낮은 줄기를 분석 같은 많은 내부 단계가 텍스트 검색을 수행 할 때 (예 & 요리에 맞게 coocked는 둘 다 기본 작업 "cook"에서 파생 됨). 정확한 일치를 기대하는 경우 실제로는 성별 검색을 찾고 있지 않지만 일반적인 검색어를 찾고 있습니다. 따라서

,

당신이 할 경우이 :

db.City.find({$text:{$search: "Fort Minor"}}) 

그것은, forting 등 그 요새, 작은, 소수 민족이있는 모든 문서를 찾을 시도합니다.

아래 할 경우 당신에게 일치와 문서를 제공 할 경우

db.City.find({ name : "Fort Minor"}) 

. 그것은 당신이 기대하는 무엇을 제공하지 않습니다

db.City.find({ name : "fort minor"}) 

: 당신이 같은 모든 소문자를 검색 할 경우

:

그러나 여기 캐치입니다.

db.user.find({ name: /^Fort Minor$/i }); 
+0

비교를 위해 변수를 사용해야합니다. 값을 하드 코딩 할 수 없습니다. –

+0

연결을 통해 사용자 변수를 사용할 수 있습니다.이 예제는 –

+0

입니다. 텍스트 검색 쿼리에서 변수를 사용할 수 있습니까? –