Je conçois ma première base de données MongoDB (et la première base NoSQL) et souhaite stocker des informations sur les fichiers d'une collection. Dans le cadre de chaque document de fichier, je voudrais stocker un journal des accès aux fichiers (à la fois les lectures et les écritures).Enregistrement de l'accès au fichier avec MongoDB
J'envisage la création d'un tableau de messages du journal dans le cadre du document:
{
"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" }
]
}
Chaque message de journal contiendra un horodatage, le type d'accès, et le nom d'utilisateur de la personne qui accède au fichier. J'ai pensé que cela permettrait un accès très rapide aux journaux pour un fichier particulier, probablement l'opération la plus courante qui sera effectuée avec les journaux.
Je sais que MongoDB a une limite de taille de document de 16 Mo. J'imagine que les fichiers auxquels on accède très fréquemment pourraient pousser contre cette limite.
Existe-t-il un meilleur moyen de concevoir le schéma NoSQL pour ce type d'enregistrement?
Une alternative serait une collection séparée 'logs' (où chaque entrée a le nom de fichier auquel elle fait référence). – Thilo