자바 API를 사용하여 mongodb를 "좋아요"로 쿼리하는 방법은 무엇입니까?
이 질문은 다른 게시물과 매우 유사합니다.
기본적으로 sql "like" '%m%' 연산자의 mongodb 버전을 사용하고 싶습니다.
하지만 내 상황에서 나는 mongodb용 java api를 사용하고 있고, 다른 게시물은 mongodb 쉘을 사용하고 있습니다.
나는 다른 스레드에 게시된 것을 시도했고 그것은 잘 작동했습니다.
db.users.find({"name": /m/})
하지만 자바에서는 기본 DBO 객체에 대한 put 메서드를 사용하고 있으며 DB Collections 객체의 find() 메서드에 전달하고 있습니다.
BasicDBObject q = new BasicDBOBject();
q.put("name", "/"+m+"/");
dbc.find(q);
하지만 효과가 없는 것 같습니다
아이디어 있는 사람?
Java ReGEx(java.util.reggex)의 인스턴스를 전달해야 합니다.패턴):
BasicDBObject q = new BasicDBObject();
q.put("name", java.util.regex.Pattern.compile(m));
dbc.find(q);
이것은 서버로 전송될 때 모든 ReGEx 플래그와 함께 MongoDB 정규식으로 변환됩니다.
먼저 텍스트를 따옴표로 묶은 다음 컴파일을 사용하여 정규식을 가져와야 합니다.
q.put("name", Pattern.compile(Pattern.quote(m)));
일부 문자를 사용하지 않으면 이스케이프할 수 없습니다.
예: 사용?
처럼m
매개 변수가 예외를 발생시킵니다.
대소문자를 구분하지 않으려면:
Document doc = new Document("name", Pattern.compile(keyword, Pattern.CASE_INSENSITIVE));
collection.find(doc);
스프링 데이터 mongodb에서 이 작업은 다음과 같이 수행할 수 있습니다.
Query query = new Query();
query.limit(10);
query.addCriteria(Criteria.where("tagName").regex(tagName));
mongoOperation.find(query, Tags.class);
Document doc = new Document("name", Pattern.compile(keyword));
collection.find(doc);
실제 답변이 아닐 수 있습니다. (터미널 쿼리를 직접 실행).
public void displayDetails() {
try {
// DB db = roleDao.returnDB();
MongoClient mongoClient = new MongoClient("localhost", 5000);
DB db = mongoClient.getDB("test");
db.eval("db.test.update({'id':{'$not':{'$in':[/su/]}}},{$set:{'test':'test3'}},true,true)", new Object[] {});
System.out.println("inserted ");
} catch (Exception e) {
System.out.println(e);
}
}
if(searchType.equals("employeeId") {
query.addCriteria(기준).여기서(searchType).regex(java.util.reggex).Pattern.compile(searchValue));
직원 = mongoOperations.find(쿼리, Employee.class, "공식 정보"); }
언급URL : https://stackoverflow.com/questions/5608584/how-to-query-mongodb-with-like-using-the-java-api
'source' 카테고리의 다른 글
관련이 없는 포인터의 동등한 비교가 참으로 평가될 수 있습니까? (0) | 2023.06.30 |
---|---|
Postgres 대소문자 구분 (0) | 2023.06.30 |
열 참조를 사용하여 VBA의 셀 내용 지우기 (0) | 2023.06.30 |
파이어베이스와 파이어베이스 관리 npm 모듈의 차이점은 무엇입니까? (0) | 2023.06.30 |
git push 시 "OAuth App의 워크플로우 생성 또는 업데이트 허용 거부" 해결 방법 (0) | 2023.06.30 |