2016-07-26 2 views
1

몽구스와 MongoDB를 사용하여 간단한 텍스트 검색을하고 있습니다. Todo라는 모델이 있는데 색인이 생성 된 내 컬렉션을 검색하고 있습니다. 예를 들어 아래 줄에서 "coffee"라는 단어를 텍스트 검색하려고합니다. 제가 위에서 넣어 라인에

TypeError: Invalid sort value: {score: [object Object] } 

오류 지점 :

Todo.find( 
    { $text: { $search: "coffee" }}, 
    { score: { "$meta": "textScore" }}) 
.sort({ score: { "$meta": "textScore" }}) 
.limit(20); 

이 다음과 같은 오류가 발생합니다. 문제의 원인이되는 정렬 방법이 확실합니다. 쿼리의 해당 부분을 제거하면 정렬되지 않은 결과를 얻을 수 있기 때문입니다.

이 문제를 더욱 복잡하게 만드는 점은 동일한 컬렉션에서 robomongo를 통해 똑같은 쿼리를 실행한다는 것입니다.

db.todos.find( 
    {$text: { $search: "coffee" }}, 
    {score: { "$meta": "textScore" }}) 
.sort({score: { "$meta": "textScore" }}) 
.limit(20); 

이것은 MongoDB에서 제공 한 것과 정확히 같은 설명서입니다. 나는 Mongoose에 관한 문제라고 확신하지만, 이전에 일하고 있었다.

답변

1

몽구스 버전에서 오류가 발생했습니다. 나는 4.4.20으로 업그레이드 한 후 3.6을 사용했다.