개요
단일 필드 인덱스 는 컬렉션 문서 내의 단일 필드에 대한 참조가 있는 인덱스입니다. 단일 필드 쿼리 및 정렬 성능을 개선하고, 일정 시간 후 또는 특정 시계 시간에 컬렉션에서 문서를 자동으로 제거하는 TTL 인덱스 를 지원합니다.
단일 필드 인덱스 를 만들 때는 다음을 지정해야 합니다.
인덱스를 생성할 필드입니다.
인덱싱된 값의 정렬 순서(오름차순 또는 내림차순)입니다. 오름차순으로 정렬하려면
BCON_INT32(1)을 지정하고 내림차순으로 정렬하려면BCON_INT32(-1)를 지정합니다.
참고
_id_ 인덱스 는 단일 필드 인덱스 의 예시 입니다. 이 인덱스 는 새 컬렉션 이 생성될 때 _id 필드 에 자동으로 생성됩니다.
샘플 데이터
이 가이드 의 예제에서는 movies sample_mflix Atlas 샘플 데이터 세트의 데이터베이스 에 있는 컬렉션 사용합니다. 무료 MongoDB Atlas cluster 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 MongoDB 시작하기 가이드 참조하세요.
단일 필드 인덱스 만들기
다은 title 필드에 오름차순으로 인덱스를 생성하는 예입니다.
bson_error_t error; bson_t *keys = BCON_NEW("title", BCON_INT32(1)); mongoc_index_model_t *index_model = mongoc_index_model_new(keys, NULL); if (mongoc_collection_create_indexes_with_opts(collection, &index_model, 1, NULL, NULL, &error)) { printf("Successfully created index\n"); } else { fprintf(stderr, "Failed to create index: %s", error.message); } bson_destroy(keys); mongoc_index_model_destroy(index_model);
다음은 앞의 코드 예제에서 생성된 인덱스가 다루는 쿼리의 예입니다.
const bson_t *doc; bson_t *filter = BCON_NEW("title", "Batman"); mongoc_cursor_t *results = mongoc_collection_find_with_opts(collection, filter, NULL, NULL); while (mongoc_cursor_next(results, &doc)) { char *str = bson_as_canonical_extended_json(doc, NULL); printf("%s\n", str); bson_free(str); } mongoc_cursor_destroy(results); bson_destroy(filter);
{ "_id" : ..., "title" : "Batman", ... }
추가 정보
단일 필드 인덱스에 학습 보려면 MongoDB Server 매뉴얼의 단일 필드 인덱스 를 참조하세요.
API 문서
이 가이드 에서 설명하는 함수에 대해 자세히 학습 다음 API 문서를 참조하세요.