2015-04-18 1 views
1

Я работаю над кодом веб-сервисов в MongoDB с использованием Java, у меня есть таблица, в которой один из столбцов содержит значения диапазона, такие как 1,2,3 или 3,4,5 или 6,7,8. Учитывая значение, как 2, я должен проверить, находится ли значение в каждом из указанных диапазонов я попробовал следующий запрос в MYSQLКак проверить строку в наборе (Find_IN_SET) с помощью MongoDB Java

выберите * из таблицы, где FIND_IN_SET («2», RangeField)

и Java код, который я попробовал это

BasicDBObject whereQuery = new BasicDBObject(); 
whereQuery.put("RangeField","2"); 
DBCursor cursor = col.find(whereQuery); 

Я не имею ни малейшего представления о правильном синтаксисе для определения FIND_IN_SET в Монго Java. RangeField - это строка в таблице и ее значение 1,2,3 или 3f, 5f. Как повторить то же самое в mondoDB коде Java

Благодаря

ответ

1

Вы можете использовать regex, чтобы получить все записи, который содержит строку поиска.

В MongoDB:

db.Table.find({"RangeField":{$regex:"2"}}); //List records which contain 2 anywhere 

В Java:

BasicDBObject dbObject = new BasicDBObject(); 
dbObject.put("RangeField", java.util.regex.Pattern.compile("2")); 
try(DBCursor cursor = collection.find(dbObject)) 
{ 
    while (cursor.hasNext()) 
    { 
     System.out.println((BasicDBObject) cursor.next()); 
    } 
} 
+1

Великий Он работал Спасибо за ваш немедленный ответ – Vicky

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

  • Нет связанных вопросов^_^