Ví dụ đơn giản lưu trữ metadata file (tên và đường dẫn) trong MongoDB collection.
Tạo collection lưu file
> db.demo645.insertOne({
'fileName': 'MongoDB Program',
'fileLocation': 'C:/users/workspace/AllMongoDBProgram/MongoDB Program'
});
> db.demo645.insertOne({
'fileName': 'SumOfTwoNumbers.java',
'fileLocation': 'E:/eclipseWorkspace/AllJavaPrograms/SumOfTwoNumbers.java'
});
> db.demo645.insertOne({
'fileName': 'Script.sql',
'fileLocation': 'C:/MySQLQuery/Script.sql'
});
Hiển thị tất cả file
> db.demo645.find();
Kết quả:
{
"_id": ObjectId("5e9c78f36c954c74be91e6e8"),
"fileName": "MongoDB Program",
"fileLocation": "C:/users/workspace/AllMongoDBProgram/MongoDB Program"
}
{
"_id": ObjectId("5e9c78f36c954c74be91e6e9"),
"fileName": "SumOfTwoNumbers.java",
"fileLocation": "E:/eclipseWorkspace/AllJavaPrograms/SumOfTwoNumbers.java"
}
{
"_id": ObjectId("5e9c78f46c954c74be91e6ea"),
"fileName": "Script.sql",
"fileLocation": "C:/MySQLQuery/Script.sql"
}
Mở rộng schema cho production:
{
fileName: String,
fileLocation: String,
fileSize: Number, // kích thước bytes
mimeType: String, // application/pdf, image/png...
uploadDate: Date, // ISODate
uploadedBy: ObjectId, // ref User
checksum: String, // MD5/SHA256 verify integrity
tags: [String], // tìm kiếm, phân loại
metadata: Object // mở rộng tùy ý (width, height, duration...)
}
Lưu ý: MongoDB không lưu file nhị phân (binary) lớn trực tiếp (giới hạn 16MB/document). Dùng GridFS cho file > 16MB, hoặc lưu trên cloud storage (S3, GCS) và chỉ lưu metadata + URL trong MongoDB.