2017-09-25 1 views
0

J'utilise cette méthode de recherche dans mes données de printemps/application MongoDB:printemps données - MongoDB - plus de termes liés à et

@Query("{$text : { $search : ?0 } }") 
List<DocumentFile> findBySearchString(final String searchString); 

Ma question serait ce que je dois donner pour searchString que je reçois DocumentFiles où deux termes existent (par exemple term1 ET term2 ou term1 + term2). Y at-il quelque chose comme et avec le printemps des données et MongoDB?

Répondre

1

Oui, vous pouvez obtenir à l'aide du référentiel mongo

List<DocumentFile> findByString1AndString2(String String1,String String2); 

Ok, en fonction de votre dernière série de commentaires, pouvons-nous faire comme ça

utilisant le gabarit mongo

Criteria regex = Criteria.where("name").regex("*.xxxx.*", "i"); 
    mongoOperations.find(new Query().addCriteria(regex), DocumentFile.class); 

En utilisant mongo dépôt

List<DocumentFile> documents= repository .findByQuery(".*ab.*"); 
interface repository extends MongoRepository<DocumentFile, String> { 
    @Query("{'name': {$regex: ?0 }})") 
    List<DocumentFile> findByQuery(String name); 
} 

Espérons que cela sera utile.

+0

je veux dire ce que l'utilisateur peut donner pour trouver terme1 et terme2. Merci! – quma

+0

je ne comprenais pas ce que vous dire, si vous commentez votre problème correctement je peux vous aider. – jai

+0

Désolé pour ma question peu claire! L'utilisateur a-t-il des possibilités avec son entrée de recherche pour contrôler s'il s'agit d'une recherche en texte intégral, ou s'il s'agit d'une recherche "like", ...? – quma