devo eseguire questa query in JavaJava MongoDB interrogazione regex
codicedb.Users.find({"name": /^ind/i})
mio Java è
Document findQuery = new Document();
findQuery.append("name", Pattern.compile("/^"+name+"/i"));
FindIterable<Document> iterable = db.getCollection("Users").find(findQuery);
Non sta tornando alcun dato, credo che il codice Java di cui sopra è la conversione
> /^ind/i into "/^ind/i"
Grazie in anticipo.
Edit:
Sulla base stribizhev suggerimento aggiornato la query e il suo operato codice
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);
In Java, non utilizzare delimitatori regex. Prova '"^(? I) "+ Pattern.quote (name)' invece di '"/^ "+ name +"/i "'. –
Grazie, ha funzionato in modo sostanziale "^ (?)" + Pattern.quote ("ind") ha convertito il valore in^(?) \ Qind \ E – Indrajeet
Sì, è vero. Ho inviato il suggerimento come risposta. –