개요
이 가이드 에서는 고 (Go) 운전자 사용하여 MongoDB 데이터베이스 및 컬렉션과 상호 작용 방법을 학습 수 있습니다.
MongoDB는 데이터를 다음 수준의 계층 구조로 구성합니다.
데이터베이스: 컬렉션을 저장 하는 MongoDB deployment 의 최상위 데이터 구조입니다.
컬렉션: MongoDB 문서 그룹입니다. 관계형 데이터베이스의 테이블과 유사합니다.
문서: 문자열, 숫자, 날짜 및 기타 내장된 문서와 같은 리터럴 데이터를 저장 단위입니다. 문서 필드 유형 및 구조에 대한 자세한 내용은 MongoDB Server 매뉴얼의 문서 항목을 참조하세요.
데이터베이스에 액세스
Client
인스턴스 에서 Database()
메서드를 사용하여 데이터베이스 액세스 할 수 있습니다.
다음 예제에서는 test_database
데이터베이스에 액세스합니다.
database := client.Database("test_database")
컬렉션에 액세스
Database
인스턴스 에서 Collection()
메서드를 사용하여 컬렉션 액세스 할 수 있습니다.
다음 예시 test_collection
이라는 컬렉션 에 액세스합니다.
collection := database.Collection("test_collection")
팁
제공된 컬렉션 이름이 데이터베이스에 아직 존재하지 않는 경우, MongoDB는 데이터를 처음 삽입할 때 컬렉션을 암시적으로 생성합니다.
컬렉션 생성
컬렉션 명시적으로 만들려면 Database
인스턴스 에서 CreateCollection()
메서드를 사용할 수 있습니다.
다음 예에서는 example_collection
이라는 이름의 collection을 만듭니다.
err = database.CreateCollection(context.TODO(), "example_collection") if err != nil { log.Fatalf("Failed to create collection: %v", err) }
Database
인스턴스 의 CreateCollection()
메서드에 options.CreateCollectionOptions
구조체를 전달하여 최대 크기 및 문서 유효성 검사 규칙과 같은 컬렉션 옵션을 지정할 수 있습니다. 선택적 매개변수의 전체 목록은 MongoDB Server 매뉴얼의 create 명령 항목을 참조하세요.
컬렉션 목록 가져오기
Database
인스턴스 에서 ListCollections()
메서드를 사용하여 데이터베이스 의 컬렉션 목록을 쿼리 할 수 있습니다.
다음 예시 에서는 데이터베이스 의 모든 컬렉션 목록을 가져온 다음 컬렉션 이름을 콘솔에 출력합니다.
cursor, err := database.ListCollections(context.TODO(), bson.D{}) if err != nil { log.Fatalf("Failed to list collections: %v", err) } defer cursor.Close(context.TODO()) for cursor.Next(context.TODO()) { var collectionInfo bson.M if err := cursor.Decode(&collectionInfo); err != nil { log.Fatalf("Failed to decode collection info: %v", err) } if name, ok := collectionInfo["name"].(string); ok { fmt.Println(name) } else { log.Println("Collection name not found or not a string") } } if err := cursor.Err(); err != nil { log.Fatalf("Cursor error: %v", err) }
컬렉션 삭제
Database
인스턴스 에서 Drop()
메서드를 사용하여 컬렉션 삭제 수 있습니다.
다음 예시 test_collection
이라는 컬렉션 삭제합니다.
err = database.Collection("test_collection").Drop(context.TODO()) if err != nil { log.Fatalf("Failed to drop collection: %v", err) }
경고
컬렉션을 제거하면 컬렉션의 모든 데이터가 삭제됨
데이터베이스에서 컬렉션을 삭제하면 해당 컬렉션 내의 모든 문서와 모든 인덱스가 영구적으로 삭제됩니다.
해당 컬렉션 의 데이터가 더 이상 필요하지 않은 경우에만 컬렉션 삭제합니다.
API 문서
이 가이드에서 설명하는 유형 또는 메서드에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.