MongoDB (및 첫 번째 NoSQL) 데이터베이스를 디자인 중이며 파일에 대한 정보를 컬렉션에 저장하려고합니다. 각 파일 문서의 일부로 파일 액세스 로그 (읽기 및 쓰기)를 저장하려고합니다.MongoDB로 파일 액세스 로깅
것은 나는 문서의 한 부분으로 로그 메시지의 배열을 만들 생각했다 :
{
"filename": "some_file_name",
"logs" : [
{ "timestamp": "2012-08-27 11:40:45", "user": "joe", "access": "read" },
{ "timestamp": "2012-08-27 11:41:01", "user": "mary", "access": "write" },
{ "timestamp": "2012-08-27 11:43:23", "user": "joe", "access": "read" }
]
}
각 로그 메시지는 타임 스탬프, 액세스 유형, 파일에 액세스하는 사람의 이름이 포함됩니다. 나는 이것이 특정 파일에 대한 로그에 매우 빠르게 액세스 할 수 있으며 로그와 함께 수행되는 가장 일반적인 작업이라고 생각했습니다.
MongoDB의 문서 크기 제한은 16Mbyte입니다. 매우 자주 액세스되는 파일이이 한계에 부딪 힐 수 있다고 생각합니다.
이 유형의 로깅을 위해 NoSQL 스키마를 설계하는 더 좋은 방법이 있습니까?
하나의 대안은 별도의 컬렉션'logs'입니다 (각 항목은 참조하는 파일 이름을가집니다). – Thilo