몽고DB

AI·2025년 10월 21일

RDBMS vs NoSql


몽고DB

https://www.w3schools.com/mongodb/index.php

설치

https://www.mongodb.com/try/download/community
community Server, MongoDB Shell(tools) msi로 설치

컨텐츠가 만들어지기 전까지 db가 안만들어짐

데이터 삽입


컬렉션도 값이 들어와야 만들어짐

붙여넣기는 ctrl+v가 안먹어서 마우스 우측 클릭을 하니까 작동을 하였다.

find




0, 1 전부 동일하게 작성, _id만 다르게 작성 가능

update


upsert 차이 확인


=> 모든 값에 likes가 1씩 증가함. 없는 애는 likes값이 1로 새로 생김

delete


drop

db가 drop이 되었어도 데이터 삽입 가능

Query Operators


select bookid, bookname from book where bookid=10

select * from book where price > 20000

Aggregation

sort


1 오름차순, -1 내림차순

skip


앞에 3개 제외하고

limit


앞에 3개만

앞에 3개 뛰어넘고 4개만 출력

countDocuments

group



import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

import dto.BookDto;
import org.bson.Document;
import org.bson.conversions.Bson;

import static com.mongodb.client.model.Filters.eq;
import static com.mongodb.client.model.Updates.combine;
import static com.mongodb.client.model.Updates.set;

public class Test {
    private static final String CONNECTION_STRING = "mongodb://localhost:27017";
    private static final String DATABASE_NAME = "madang";
    private static final String COLLECTION_NAME = "book";

    public static void main(String[] args) {
        MongoClient mc = MongoClients.create(CONNECTION_STRING);
        MongoDatabase database = mc.getDatabase(DATABASE_NAME);
        MongoCollection<Document> collection = database.getCollection(COLLECTION_NAME);

        // 목록
        for(Document d : collection.find()){
            BookDto bookDto = new BookDto();
            bookDto.setBookId(d.getInteger("bookid"));
            bookDto.setBookName(d.getString("bookname"));
            bookDto.setPublisher(d.getString("publisher"));
            bookDto.setPrice(d.getInteger("price"));
            System.out.println(bookDto);
            System.out.println(d);
        }
        // 상세
        Document doc = collection.find(eq("bookid",1)).first();
        System.out.println(doc);

        // 등록
        Document document = new Document("bookid", 11)
                .append("bookname", "uplus")
                .append("publisher","multiCampus")
                .append("price",5000);
        collection.insertOne(document);

        // 수정
        Bson filter = eq("bookid",11);
        Bson update = combine(
                set("bookname","uplus2"),
                set("publisher","multiCampus2"),
                set("price",10000)
        );
        collection.updateOne(filter,update);

        // 삭제
        collection.deleteOne(eq("bookid",11));
    }
}

0개의 댓글