I need some assistance as to how to find all entries in the collection which have one of two values.
I have implemented the LogItem project from the http://pragmaticintegrator.wordpress...mongodb-setup/
I am trying to get a list from the collection where the message is "just some text1" or "just some text2".
Here is my code:
However nothing is being returned in the logItems list.Code:public void executeOrQuery() { MongoOperations mongoOps = mongoTemplate; Criteria criteria1 = Criteria.where("message").is("just some text1"); Criteria criteria2 = Criteria.where("message").is("just some text2"); Query messageOrQuery = new Query(criteria1); Query queries = new Query(criteria2); messageOrQuery.or(queries ); messageOrQuery.fields().include("_id"); messageOrQuery.fields().include("message"); List<LogItem> logItems = mongoOps.find(messageOrQuery, LogItem.class, "logItem"); for (int index = 0; index < logItems.size(); index++){ System.out.println(logItems.get(index).getId() + ", " + logItems.get(index).getMessage()); } }
Appreciate any suggestions.
The above code is throwing an Runtime Exception: json can't serialize type: class org.springframework.data.document.mongodb.query.Qu eryCode:public void executeOrQuery() { int rowCount = 0; MongoOperations mongoOps = mongoTemplate; Criteria criteria1 = Criteria.where("message").is("just some text1"); Criteria criteria2 = Criteria.where("message").is("just some text2"); List<Query> queries = new ArrayList<Query>(); Query query1 = new Query(criteria1); queries.add(query1); Query query2 = new Query(criteria2); queries.add(query2); Criteria orCriteria = new Criteria("message"); orCriteria.or(queries); System.out.println(orCriteria.getCriteriaObject()); Query messageOrQuery = Query.query(orCriteria); messageOrQuery.fields().include("_id"); messageOrQuery.fields().include("message"); List<LogItem> logItems = mongoOps.find(messageOrQuery, LogItem.class, "logItem"); rowCount += logItems.size(); for (int index = 0; index < logItems.size(); index++){ System.out.println(logItems.get(index).getId() + ", " + logItems.get(index).getMessage()); } System.out.println("Row Count: " + rowCount); }
Any help would be appreciated! Thanks in advance.
I have been able to get something working but I would like to have some help on the above error.
Code:public void executeOrQuery(Query ... queries) { MongoOperations mongoOps = mongoTemplate; Query messageOrQuery = new Query().or(queries); System.out.println(messageOrQuery.getQueryObject()); messageOrQuery.fields().include("_id"); messageOrQuery.fields().include("message"); List<LogItem> logItems = mongoOps.find(messageOrQuery, LogItem.class, "logItem"); for (int index = 0; index < logItems.size(); index++){ System.out.println(logItems.get(index).getId() + ", " + logItems.get(index).getMessage()); } System.out.println("Row Count: " + logItems.size()); }


Reply With Quote