Collection

이 문서는 DocumentDB의 데이터 집합인 컬렉션 관리 방법에 대해서 설명합니다.

생성

컬렉션은 다음과 같이 DocumentDB.create_collection 함수를 통해 생성할 수 있습니다. 인자는 컬렉션의 이름과 컬렉션에서 사용할 색인에 대한 스키마가 전달됩니다.

from aeca import DocumentDB
 
doc_db = DocumentDB(channel)
 
indexes = [
    {
        "index_type": "kPrimaryKey",
        "fields": ["doc_id"]
    }
]
collection_name = "first_collection"
doc_db.create_collection(collection_name, indexes=indexes)

컬렉션 생성시 Primary Key와 Secondary Key를 함께 정의하여 데이터 삽입시 색인을 바로 이용할 수 있습니다. 하지만 초기에 다량의 데이터를 입력하는 경우 Primary Key만 정의하고 데이터 입력이 완료된 후 Secondary Key를 생성하면 더 빠르게 초기 데이터를 구축할 수 있습니다.

인덱스를 위한 스키마 정의

색인을 위한 스키마 정의 방법은 색인을 위한 스키마에서 확인할 수 있습니다.

조회

저장된 colleciton을 조회하는 방법을 설명합니다. DocumentDB.list_collections 함수를 통해 전체 colleciton 목록을 확인할 수 있습니다.

doc_db.list_collections()
실행 결과
['first_collection']

DocumentDB.get_collection 함수를 통해 colleciton의 색인 정보와 통계값을 확인할 수 있습니다.

doc_db.get_collection(collection_name)
실행 결과
{'success': True,
 'message': 'OK',
 'profile': {'duration': {'query': 0, 'serialization': 0, 'unit': 'us'}},
 'data': [{'collection_name': 'first_collection',
   'indexes': [{'index_id': 1,
     'index_name': '__primary_key__',
     'fields': ['doc_id'],
     'unique': True,
     'index_type': 'kPrimaryKey',
     'status': 'kEnabled',
     'options': {}}],
   'statistics': [{'index_id': 1,
     'index_name': '__primary_key__',
     'approximated_size': 0,
     'num_docs': 0,
     'accessed': 0,
     'added': 0,
     'updated': 0,
     'deleted': 0,
     'merged': 0,
     'accessed_at': 0,
     'added_at': 0,
     'updated_at': 0,
     'deleted_at': 0,
     'merged_at': 0}]}]}

편집

DocumentDB.rename_collection 함수를 통해 컬렉션의 이름을 수정할 수 있습니다.

doc_db.rename_collection(collection_name, "second_collection")

삭제

DocumentDB.drop_collection 함수를 통해 삭제할 수 있습니다.

doc_db.drop_collection(collection_name)