개요

문서는 JSON 객체입니다. 또한 문서는 데이터에 대한 컨테이너이며 IBM® Cloudant® for IBM Cloud® 데이터베이스의 기초입니다.

IBM Cloudant에서 IBM Cloud® 서비스를 사용하는 경우 문서의 최대 크기는 1MB로 제한됩니다. 이 제한을 초과하면 413 ’ 오류가 발생합니다.

IBM Cloudant는 데이터에 대해 결과적으로 일관된 모델을 사용합니다. 결과적으로 일관된 모델을 사용하는 경우 몇 가지 조건 하에서 이전 문서 컨텐츠를 검색할 수 있습니다. 예를 들어 애플리케이션에서 문서를 작성하거나 업데이트한 직후에 동일한 문서를 읽어들이는 경우 이전 컨텐츠가 검색됩니다.

즉, 애플리케이션에서 쓰기 또는 업데이트가 수행되기 이전의 문서 컨텐츠를 확인할 수 있습니다. 이 모델에 대한 자세한 정보는 일관성에 대한 주제를 참조하십시오.

문서 필드

모든 문서에는 다음과 같은 두 개의 필드가 포함되어 있어야 합니다.

이러한 두 개의 필수 필드 뿐만 아니라 문서에는 일반적으로 다음 절에서 자세히 설명하는 몇 가지 주의사항에 대해 JSON을 사용하여 설명할 수 있는 다른 컨텐츠가 포함될 수 있습니다.

문서 ID

문서 ID의 형식은 데이터베이스가 파티셔닝되었는지 여부에 따라 달라집니다. 데이터베이스가 파티셔닝된 경우 각각의 문서에 대한 파티션 키는 다음 절에서 자세히 설명하는 것과 같이 문서 ID의 일부로 정의됩니다.

파티셔닝된 데이터베이스의 ID

파티셔닝된 데이터베이스를 사용하는 경우 문서 ID는 파티션 키 및 문서 키를 둘 다 지정합니다. 이러한 키는 문서 ID를 콜론으로 구분된 두 개의 파트로 분할하여 지정됩니다.

$PARTITION_KEY:$DOCUMENT_KEY

$PARTITION_KEY는 문서 간에 동일할 수 있습니다. 다음 $DOCUMENT_KEY 은 각 파티션 내에서 고유해야 합니다. 즉, 전체 문서 ID는 데이터베이스 내에서 고유해야 합니다. 문서 키에는 추가적인 콜론 문자가 포함될 수 있습니다.

파티셔닝되지 않은 데이터베이스의 ID

파티션이 적용되지 않은 데이터베이스의 경우, ‘ _id ’ 필드는 사용자가 직접 생성하거나, IBM Cloudant 에 의해 UUID로 자동 생성됩니다.

문서 _id 필드를 지정하도록 선택하는 경우 7168자(7k)를 초과하지 않도록 제한해야 합니다.

파티셔닝된 데이터베이스와 마찬가지로 문서 ID는 데이터베이스 내에서 고유해야 합니다.

필드 이름 제한사항

밑줄 문자(_)로 시작되는 필드 이름은 IBM Cloudant에서 예약되어 있습니다. 이 규칙은 일반적으로 밑줄로 시작되는 고유한 필드 이름을 사용할 수 없음을 의미합니다. 예를 들어 example 필드는 허용되지만 _example 필드의 경우 doc_validation 오류 메시지가 표시될 수 있습니다.

다음과 같이 밑줄 접두부가 포함된 필드를 작성하려고 시도하는 JSON 문서 예제를 참조하십시오.

{
	"_top_level_field_name": "some data"
}

다음과 같이 밑줄 접두부가 포함된 필드를 작성하려고 시도할 때 리턴되는 오류 메시지를 참조하십시오.

{
	"error": "doc_validation",
	"reason": "Bad special document member: _top_level_field_name"
}

하지만 필드 이름이 문서 내에서 중첩된 오브젝트를 위한 것인 경우 해당 필드 이름에 밑줄 접두부를 사용할 수 있습니다.

다음과 같이 오브젝트 내에서 중첩되어 있으며 밑줄 접두부가 포함된 필드를 작성하려고 시도하는 JSON 문서 예제를 참조하십시오.

{
	"another_top_level_field_name": "some data",
	"another_field": {
		"_lower_level_field_name": "some more data"
	}
}

다음과 같이 밑줄 접두부가 포함된 중첩 필드가 작성될 때 리턴되는 성공 메시지 예제(축약됨)를 참조하십시오.

{
	"ok": true,
	"id": "2",
	"rev": "1-9ce...8d4"
}

쿼럼 - 데이터 쓰기 및 읽기

분산 시스템의 경우 요청을 완료하기 위해 다소 시간이 소요될 수 있습니다. "쿼럼" 메커니즘은 쓰기 또는 읽기 등의 요청이 정상적으로 완료되는 시점을 판별하기 위해 사용됩니다.

쿼럼 설정 및 전용 IBM Cloudant 시스템에 대한 영향에 대한 자세한 정보를 확인하려면 IBM Cloudant 지원 센터에 문의하십시오.

TTL(Time to Live)

TTL( Time to Live )은 데이터의 속성으로, 일정 기간이 경과한 후 또는 특정 시점에 도달하면 해당 데이터가 만료된 것으로 간주됩니다. 데이터 자체가 삭제되거나 대체(아카이브) 위치로 이동할 수 있습니다.

IBM Cloudant 데이터베이스 내에서 Time to Live 기능을 지원하지 않습니다. 고객은 [Views를] 사용하여 문서의 만료 타임스탬프로 인덱싱하고 주기적으로 뷰를 쿼리하여 제거해야 할 문서를 찾을 수 있습니다