Я пытаюсь запросить MongoDB через Casbah для поля, которое является массивом строк с регулярным выражением.
Например:
У меня есть Maschine со списком ips, которые хранятся в виде строки в полях ips.
Теперь я хочу найти все машины с подсетью 192.168.
Мне кажется, что я не могу запросить массив с регулярным выражением, примененным к каждой записи, и если одна из записей соответствует машине, возвращается.
Есть ли способ сделать такой запрос?
- Исправлено
Спасибо за вашу помощь.
Теперь все работает. В конце мне нужно обойти одно ограничение Casbah, потому что мне нужно было присоединиться к запросам с $ или, и Casbah жалуется на отсутствие последствий с помощью регулярного выражения.
Мой окончательный код для запроса массива RegExp с дополнительным другим полем:
val regexp = ".*" + parameter + ".*"
val nameQ = MongoDBObject("serverName" -> regexp.r)
val ipsQ = MongoDBObject("ips" -> regexp.r)
val bldr = MongoDBList.newBuilder
bldr += ipsQ
bldr += nameQ
val query = MongoDBObject("$or" -> bldr.result.asDBObject)
val result = find(query)
Это не самый лучший код, и конкатенация параметров должна быть исправлена. Но это работает :)