반응형
MongoDB에 대한 지식이 없어서 spring boot에서는 어떻게 mongodb에 데이터를 insert 시키는지에 대해 공부했다.
MongoDatabaseFactory
를 사용하여 추가하는 방법
@Autowired
MongoDatabaseFactory mongoDatabaseFactory;
...
@Bean
public ApplicationRunner applicationRunner(){
return args -> {
MongoDatabase db = mongoDatabaseFactory.getMongoDatabase();
db.createCollection("collectionName");
db.getCollection("collectionName").insertOne(
new Document()
.appned("fieldName1", "Hello")
.append("fieldName2", "World")
)
}
}
3.0버전 부터는 MongoDbFactory
대신 MongoDatabaseFactory
를 사용하면 된다.
MongoTemplate
을 이용하는 방법
@Getter
@Setter
public class CollectionDto {
private String name;
private String number;
}
template은 insert메소드에 object를 받을 수 있기때문에 dtoClass를 만들었다.
@Autowired
MongoTemplate mongoTemplate;
...
@Bean
public ApplicationRunner applicationRunner() {
return args -> {
CollectionDto dto = new CollectionDto();
dto.setName("이름");
dto.setNumber("숫자");
mongoTemplate.insert(dto, "collectionName"); // object, [컬렉션이름]
}
}
mongoRepository
를 이용하는 방법
@Getter
@Setter
@Document(collection = "collectionName")
public class CollectionDto {
private String name;
private String number;
}
dtoClass에 @Document
를 넣어준다. class에 이름과 컬렉션의 이름이 다를경우 따로 collection을 설정해준다.
public interface CollectionRepository extends PagingAndSortingRepository<Meeting, String> {
List<Meeting> findByName(String name);
}
Repository를 인터페이스를 만든후
@Autowired
MeetingRepository meetingRepository;
...
@Bean
public ApplicationRunner applicationRunner() {
return args -> {
meetingRepository.findByName("이름").forEach(m -> {
System.out.println(m);
});
}
}
name field의 값이 이름인 데이터를 콘솔에 출력
반응형
'TIL' 카테고리의 다른 글
[TIL] 200828 간단한 IntelliJ 단축키 팁 (0) | 2020.08.28 |
---|---|
[TIL] 200824 JAVA. HashMap의 getOrDefault() (0) | 2020.08.24 |
200123 jQuery 기본문법, 함수 (0) | 2020.01.24 |
200122 HTML5, CSS3 추가된 것들 (0) | 2020.01.22 |
200121 Date(), RegExp, Ajax (0) | 2020.01.21 |