fullSearch (query methods)
Atualizado
Atualizado
Essa full search possui um start e end date, veja:
Nosso Post possui um instant, correto? Portanto, esse moment precisa estar entre o start e end da requisição.
Como é full search, o text deve estar contido ou no title, body ou nos comments.
Inicialmente a consulta no @Quey começará com uma lista de condições "end".
O $and tem a seguinte sintaxe:
{ $and: [ { }, { } , ... , { } ] }
Cada expressão ali dentro será uma condicional.
As duas primeiras condicionais serão o startMoment e endMoment, ou seja, "?1 e ?2".
terá o operador $gte. Ele seleciona os documentos nos quais o valor do campo especificado é maior ou igual a (ou seja, >=).
Sintaxe: { field: { $gte: value } }
O value é = ?1 (parâmetro do método no Repository).
terá o operador $lte. Ele seleciona os documentos em que o valor de field é menor ou igual ao value especificado (ou seja, <=).
Sintaxe: { field: { $lte: value } }
O value é = ?2 (parâmetro do método no Repository).
Ele vai ser inserido dentro da condicional $and, será os campos de text.
Dessa vez, ele não será um search somente do title. Ele buscará no title, post e comments. Assim sendo, serão 03 fields, onde usaremos $or.
"{ 'title': { $regex: ?0, $options: 'i' } }, "{ 'body': { $regex: ?0, $options: 'i' } }, "{ 'comments.text': { $regex: ?0, $options: 'i' } }
Veja como irá ficar a consulta no repository ➡️