запрос не работает для полуслов в монгоиде - PullRequest
0 голосов
/ 11 февраля 2019

Я написал этот запрос в рельсах, но он дает мне документы только тогда, когда я пишу все слово, например, когда я пишу Statement, он дает мне все документы, которые имеют слово Statement, но если я пишу Stat, это нене дайте мне никакого документа.Таким образом, запрос чувствителен к словам, и я работал над тем, чтобы сделать его нечувствительным к словам, но почему-то не работает и почему.

def set_query
  @query = params[:query]
end


def set_documents
  @documents = @folder ? @folder.documents : current_user.documents
  @documents = (params[:query] ? @documents.where(
      :$text => {:$search => { name: (/.*(#{@query})+.*/i)}.to_s}
  ) : @documents).page(params[:page])
end

любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 25 февраля 2019

Попробуйте использовать поиск по регулярному выражению без учета регистра.

def set_documents
  @documents = @folder ? @folder.documents : current_user.documents
  @documents = (params[:query] ? @documents.where(
      {'name': {'$regex': @query, '$options': i}}).page(params[:page])
end
...