tôi phải chạy truy vấn này trong JavaJava MongoDB regex truy vấn
đangdb.Users.find({"name": /^ind/i})
My Java là
Document findQuery = new Document();
findQuery.append("name", Pattern.compile("/^"+name+"/i"));
FindIterable<Document> iterable = db.getCollection("Users").find(findQuery);
Nó không được trả lại bất kỳ dữ liệu, tôi nghĩ các mã java trên được chuyển đổi
> /^ind/i into "/^ind/i"
Xin cảm ơn trước.
Edit:
Dựa trên stribizhev đề nghị cập nhật các truy vấn và làm việc đang
db.Users.find({"name": {"$regex": /^ind/, "$options": "i"}})
Java của nó
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);
Trong Java, không sử dụng delimiters regex. Hãy thử '"^(? I) "+ Pattern.quote (tên)' thay vì '"/^ "+ name +"/i "'. –
Cảm ơn, nó đã làm việc về cơ bản "^ (?)" + Pattern.quote ("ind") giá trị được chuyển đổi thành^(?) \ Qind \ E – Indrajeet
Vâng, đó là sự thật. Tôi đã đăng đề xuất làm câu trả lời. –