2017-06-22 4 views
-1

Ich habe Liste der Dokumente in mongodb wieMongoDB Spiel oder wie Abfrage

{ 
     "id": "5948b044ef91edb15d222794", 
     "articleId": "4", 
     "author": "asdfghjkl", 
     "publicationDate": 1454371200000, 
     "rating": 4, 
     "numViews": 600000, 
     "summary": "In the end, bombastic bozo Donald Trump’s predictions of an Iowa victory were all a big, sad joke.", 
     "articleUrl": "http://www.asdfghjkl.com/news/politics/donald-trump-predicts-iowa-victory-voters-caucusing-article-1.2516776", 
     "keywords": [ 
      "Trump", 
      "Election" 
     ], 
     "imgPath": [ 
      "http://assets.asdfghjkl.com/polopoly_fs/1.2516971.1454384425!/img/httpImage/image.jpg_gen/derivatives/article_1200/usa-election-trump.jpg" 
     ], 
     "articleName": "Ted Cruz, after trailing in polls, beats Donald Trump in Iowa caucus; Marco Rubio finishes a close third" 
    } 

ich eine Liste von Keywords (Strings wie [ "Trump", "Donald", "Election"]), die ich mag stimmen mit den Spalten keywords und articleName in diesen Dokumenten überein.

so, wie kann ich Dokumente aus Sammlung mit $in or $or or regex in Java Spring-Boot erhalten?

+0

Durch die Verwendung von Federdaten! Bitte zeigen Sie etwas Anstrengung von Ihrer Seite, wenn Sie möchten, dass die Leute Ihnen helfen. –

+0

Setzen Sie Ihr '@ Repository' in die Frage und die Schnittstelle, die mit diesen Informationen implementiert, könnten wir Ihnen helfen – MaQuiNa1995

Antwort

1
@Autowired 
private MongoTemplate mongoTemplate; 

Query query = new Query(); 
List<String> list = Arrays.asList("Trump", "Election"); 
query.addCriteria(Criteria.where("keywords").in(list)); 
List<YourModel> yourModel = mongoTemplate.find(query, YourModel.class); 
0

Ich habe dies getan durch Umsetzung folgende $ regex:

BasicQuery query = new BasicQuery("{ keywords: { $regex: '(?:[\\s]|^)("+keywords+")(?=[\\s]|$)',$options: 'i' } } "); 
    articlesList = mongoTemplate.find(query, Articles.class); 

wo Schlüsselwörter wie sind: keyword1 | Schlüsselwort2 | Begriff3