일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백준 2252 줄세우기
- rabbitmq 싱글톤
- java 파티
- mongodb lookup
- 백준 특정한 최단 경로
- javav 1676
- spring mongodb switch
- Spring ipfs
- java 1509
- kotiln const
- nodejs rabbitmq
- java 1238
- spring mongoTemplate
- 자바 백준 팩토리얼 개수
- spring mongodb
- java 백준 1509
- 익명 객체 @transactional
- 백준 1504 java
- kotiln const val
- go
- Java Call By Refernce
- java 팩토리얼 개수
- 전략 패턴이란
- spring mongoTemplate switch
- kotiln functional interface
- 백준 연결요소 자바
- 자바 1676
- ipfs bean
- 안정해시
- ipfs singletone
- Today
- Total
목록데이터베이스 (4)
공부 흔적남기기
localField와 foreignField를 사용foreignField에 index를 생성해서 사용pipeline을 통해서 match를 걸어 사용할 경우 $expr을 사용해야하기 때문에인덱스가 사용되지 않는다.from collection에서 가져올 데이터가 적다면pipeline에 $project를 사용하고 해당 데이터들에 대해 인덱스를 생성해서 사용이런 방식으로 사용하면 collection을 읽지않고 covering Index를 사용해서 데이터를 가져오기 때문에 효과적인 $lookup 사용이 가능하다.Good ExampleBoards collection 에 userId와 userName에 index가 각각 걸려있음coveringIndex를 사용하기 때문에 explain 해보면"totalDocsExami..
$facet과 $limit $skip $project를 통해 쉽게 페이지 네이션을 구현하자. 이 코드를 통해 한방에 페이지네이션을 할 수 있다. 틀은 다음과 같다 { total: Long, $지정할데이터이름 : List } fun Aggregation.pagination(pageable: Pageable, listName: String) { val skipSize = (pageable.pageSize * pageable.pageNumber).toLong() val limitSize = pageable.pageSize.toLong() val pageFacetOperation = Aggregation.facet( SkipOperation(skipSize), LimitOperation(limitSize), )..
spring data mongo에서 지원하는 Agggregation에서 $lookup operation은 from, localfield, foreinfield, as로 한정적이다. 따라서 collection의 한가지 field로만 join하여 사용할 수 있다. 하지만 필자는 2가지 이상의 필드를 이용하여 join할 필요가 있어 CustomAggregation 만들어 사용했다. import org.bson.Document import org.springframework.data.mongodb.core.aggregation.AggregationOperationContext import org.springframework.data.mongodb.core.aggregation.ExposedFields impor..
코드를 짜는중 데이터베이스 접근해서 In절로 데이터를 가져오되 In절에 담긴 순서대로 데이터를 가져오고 싶었습니다. 여러 구글링 합쳐본 결과 aggregation을 통해서 해결할 수 있었습니다. 방식을 먼저 설명하면 match 를 통해 데이터를 찾오고 addField와 IndexOfArray를 이용하여 order라는 attribute를 하나더 만들어 줍니다. 생긴 order을 이용하여 Sort를 하여 가져오면 됩니다. fun getData(list: MutableList): List { val match = match(Criteria.where("_id").`in`(list)) val addField = addFields().addField("_order").withValueOf(IndexOfArray...