MongoDB の正規表現の検索は、MongoDB のコマンドでは、’/' で囲んだ正規表現で書く
コレクションが以下のような場合、
{ "info":{ name: "y-task13md" }, "data":[] }
db.getCollection('xxx').find({ "info.name" : /^y\-t.+d$/ })
これを、Java で、mongodb-driver を使用した場合、
要求値の指定、BasicDBObject の第2引数 に、java.util.regex.Pattern で指定することになる。
MongoClient client = new MongoClient(hostname, 27017); MongoDatabase database = client.getDatabase(dbname); MongoCollection<Document> collection = database.getCollection(name); String key = "^y\\-t.+d$" BasicDBObject filter = new BasicDBObject("info.name", Pattern.compile(key)); collection.find(filter).iterator().forEachRemaining(doc->{ // 処理 });
mongodb-driver は、以下を指定
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver</artifactId> <version>3.8.0</version> </dependency>