ME.find({pictures: {$exists: true}})
Просто, это работало на меня.
попробуйте следующее:
URL serverURL = new URL(request.getScheme(), // http
request.getServerName(), // host
request.getServerPort(), // port
""); // file
EDIT
скрытие порта по умолчанию на http и https :
int port = request.getServerPort();
if (request.getScheme().equals("http") && port == 80) {
port = -1;
} else if (request.getScheme().equals("https") && port == 443) {
port = -1;
}
URL serverURL = new URL(request.getScheme(), request.getServerName(), port, "");
public String getServer(HttpServletRequest request) {
int port = request.getServerPort();
StringBuilder result = new StringBuilder();
result.append(request.getScheme())
.append("://")
.append(request.getServerName());
if (port != 80) {
result.append(':')
.append(port);
}
return result;
}
URI u=new URI("http://www.google.com/");
String s=u.getScheme()+"://"+u.getHost()+":"+u.getPort();
Как сказал Cookie, из java.net.URI ( docs ).
Если вы хотите сохранить URL-адрес, указанный в запросе (например, отключив порт, если он не был явно указан), вы можете использовать что-то вроде этого. Регулярное выражение соответствует URL-адресам HTTP и HTTPS. Группа захвата 1 содержит корень сервера от схемы до необязательного порта. (Это тот, который вам нужен.) Группа 2 содержит только имя хоста.
String regex = "(^http[s]?://([\\w\\-_]+(?:\\.[\\w\\-_]+)*)(?:\\:[\\d]+)?).*$";
Matcher urlMatcher = Pattern.compile(regex).matcher(request.getRequestURL());
String serverRoot = urlMatcher.group(1);