Мне нужно запустить этот запрос в Java
db.Users.find({"name": /^ind/i})
Мой код Java
Document findQuery = new Document();
findQuery.append("name", Pattern.compile("/^"+name+"/i"));
FindIterable<Document> iterable = db.getCollection("Users").find(findQuery);
Он не возвращает никаких данных, я думаю, что приведенный выше java-код преобразует
> /^ind/i into "/^ind/i"
Спасибо заранее.
Edit:
На основе stribizhev предложение обновило запрос и его работу
db.Users.find({"name": {"$regex": /^ind/, "$options": "i"}})
Код Java
Document regQuery = new Document();
regQuery.append("$regex", "^(?)" + Pattern.quote(name));
regQuery.append("$options", "i");
Document findQuery = new Document();
findQuery.append("name", regQuery);
FindIterable<Document> iterable = db.getCollection("Users").find(findQuery);