2016-09-07 3 views
0

부분적으로 쿼리를 제공 할 때 몽구스가 쿼리 결과를 반환하려고합니다. 예를 들면 : 나는 여러 회사를 나열하는 '회사'스키마를 가지고 있습니다. 문서 예 :몽구스로 부분 검색하기

{ 
"_id" : ObjectId("57aabeb80057405968de1539"), 
"companyName" : "Vandelay Industries", 
"owner" : "Ary Vandelay", 
"inception" : 2012, 
"__v" : 1 
} 

그래서 나는이 같은 검색 쿼리 할 경우 :

Company.findOne(
    { companyName: Vandelay Industries }, function (err, company) { 
     if (company) { 
      //do stuff 
     } 
    }); 

이 문서를 생성 할 것이다. 나는 부분 검색 이러한 종류의 작업을 수행하고 여전히 결과를 얻을 수 있도록하고 싶습니다

Company.findOne(
    { companyName: Vandelay }, function (err, company) { 
     if (company) { 
      //do stuff 
     } 
    }); 

: 다음과 같은 처리를 할 경우, 나는 결과를 얻을 수 없습니다. 몽구스로 할 수있는 방법이 있습니까?

답변

1

이렇게하려면 정규식 검색을 사용하여 필요한 결과를 얻을 수 있습니다.

var searchKey = new RegExp('Vandelay', 'i') 
Company.findOne({ companyName: searchKey }, function (err, company) { 
    if (company) { 
     //do stuff 
    } 
}); 

this를 참조하십시오.

0

query가 특정 값

Company.findOne({"companyName": /Vandelay/},function(err,company){ 
    if(!err){ 
     console.log(company); 
    } 
}); 
-1

에 결과를 얻을 수 있습니다 당신은 전체 텍스트 검색을 수행하고 있습니까? 귀하가 그렇게한다면 :

TagGroup.find({ 
    $text: { 
     $search: text 
    } 
}, { 
    score: { 
     $meta: "textScore" 
    } 
}).sort({ 
    score: { 
     $meta: 'textScore' 
    } 
}) 

아래 코드를 시도하십시오. 또한이 문서가 증가 할 때,이 방법을 고려해야합니다, 해당 스키마

TagGroupSchema.index({ 
    "$**": "text" 
}); 

Here is the document

당신은 그 중 하나를 수행 할 elasticsearch를 사용할 수에 인덱스를 만들 필요가있다.

관련 문제