0

В Java это возможноМанипулирование строки в MongoDB, которые соответствуют поиска регулярных выражений

public static void main(String[] args) { 
    Matcher m = Pattern .compile("^(.*?[.].*?[.].*?[.].*?)[.].*") 
         .matcher(
           "com.SEM.Google.Generico.space.test"); 
    if (m.matches()) { 
     System.out.println(m.group(1)); 
    } 
} 

Это дало бы мне, как результат: com.SEM.Google.Generico

Если у меня есть строка в MongoDB

"ДВ": "com.SEM.Google.Generico.space.test"

можно использовать структура агрегирования mongo как-то получить com.SEM.Google.Generico как результат?

Он должен быть как можно более общим. Так что-то вроде

$project: { 
    pathString: { 
     $substr: ["$path.dv", 0, 23] 
    } 

} 

Возможно ли это вообще? Спасибо.

ответ

2

Нет, нет никакого способа сделать это.

Эта функция была запрошена два года назад, но она еще не реализована (см. Вопрос об открытии jira: https://jira.mongodb.org/browse/SERVER-11947). Если вы не хотите использовать $ substr, я предполагаю, что вы должны применить регулярное выражение к результатам запроса ...

0
var pattern = "Your Regex Pattern" 
db.yourCollectionName.find({ "dv": { $regex: pattern} }) 

должны производить желаемые результаты

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

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