最初のMongoDB(および最初のNoSQL)データベースを設計していて、ファイルに関する情報をコレクションに保存したいと考えています。各ファイルドキュメントの一部として、ファイルアクセス(読み取りと書き込みの両方)のログを保存したいと思います。
ドキュメントの一部としてログメッセージの配列を作成することを検討していました。
{
"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には16Mバイトのドキュメントサイズ制限があることを知っています。非常に頻繁にアクセスされるファイルは、この制限を超える可能性があると思います。
このタイプのロギング用にNoSQLスキーマを設計するためのより良い方法はありますか?