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"
ありがとうございます。
編集: 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);
を見ることができる正規表現区切り文字を使用しないように
オブジェクトパターンは、いくつかの他のフラグを持っています。/^ "+ name +"/i "'の代わりに '' ^(?i) "+ Pattern.quote(name)'を試してください。 –
ありがたいことに、それは基本的に "^(?)" + Pattern.quote( "ind")に変換された値を^(?)\ Qind \ E – Indrajeet
に変換しました。私は答えとして提案を掲載しました。 –