Web/스프링
[java-mongo] FindIterable 조회 방법 example 예제
벨포트조던
2022. 7. 6. 17:43
반응형
spring에서 mongo 조회하는 방법은 몇가지 있어보인다.
검색에서 가장 많이 나오는 자료와 다르게...
기존 코드 쓰는 방식이 이거여서 ... 이 방식으로 찾았는데, 금방 나오지는 않는다. 그래서 정리
FindIterable<Document> iterable = db.getCollection("aaaaa").withReadPreference(ReadPreference.secondaryPreferred()).find(filter);
FindIterable 이걸 쓰고 있는 환경이어서 여기에 맞게 필요했음
필요사항
greater than, less than 사용하여 비교,
비교값은 날짜(ISOdate) 비교필요
예제 코드
LocalDate now = LocalDate.now(ZoneId.of("GMT"));
System.out.println(LocalDateTime.now(ZoneId.of("GMT")).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
// string to instant 날짜
// Instant to = Instant.parse("2022-07-05T00:00:00.000Z");
// Localdate to Instant 날짜
Instant from = LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC);
// 타임존 설정방법
Instant to = LocalDate.now().plusDays(1).atStartOfDay().toInstant(ZoneOffset.UTC);
Bson filter = Filters.and(Filters.gte("sendDate", from), // start just after our last position
Filters.lt("sendDate", to)); // skip internal movements across shards
FindIterable<Document> iterable = db.getCollection("컬랙션").withReadPreference(ReadPreference.secondaryPreferred()).find(filter);
MongoCursor<Document> cursor = iterable.iterator();
// 조회
while (cursor.hasNext()) {
Document document = cursor.next();
System.out.println(document);
}
참고
https://www.tabnine.com/code/java/classes/com.mongodb.client.FindIterable
https://www.tabnine.com/code/java/methods/org.springframework.data.mongodb.core.query.Criteria/gte
https://stackoverflow.com/questions/54970857/mongodb-filters-between-date-in-java
https://www.geeksforgeeks.org/date-toinstant-method-in-java-with-examples/
반응형