2013-07-15 2 views
1

Я хочу пропустить некоторые записи из базы данных, которая имеет некоторую строку в Java (используя BasicDBOject). Скажем, например:Как фильтровать записи из mongodb в java

«Описание» мое имя поля в коллекции под названием «комментарий»

Я не хочу записей, которые имеют «Тестовое сообщение» как часть значения в поле «Описание».

+0

Это собирается быть перебором неэффективного запроса, поскольку он не будет иметь возможности использовать индекс и вместо этого будет работать регулярное выражение на каждом 'description'. – WiredPrairie

+0

Вопрос был ответ: http://stackoverflow.com/questions/5608584/how-to-query-mongodb-with-like-using-the-java-api/5608625#5608625 – WiredPrairie

ответ

1

Пожалуйста, обратитесь к документации по адресу http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/#getting-a-set-of-documents-with-a-query и http://api.mongodb.org/java/current/com/mongodb/QueryBuilder.html#regex%28java.util.regex.Pattern%29, так как вы, кажется, не слишком много пытаетесь исследовать это самостоятельно. Код будет выглядеть примерно так:

Mongo m = new Mongo(); 
m.setWriteConcern(WriteConcern.SAFE); 
DBCollection c = m.getDB("testdb").getCollection("collection"); 

Pattern pattern = Pattern.compile("Test Message"); 
DBObject query = QueryBuilder.start(). 
     QueryBuilder.start("description").regex(pattern).get(); 
System.out.println(c.find(query).count()); 
+0

Этот ответ теперь отсутствует дата в отношении Java API версии 3.4.1+. – sharky

Смежные вопросы