http://vietjack.com/mongodb/index.jsp Copyright © vietjack.com GridFS MongoDB Giới thiệu GridFS GridFS MongoDB Specification để lưu giữ thu thập file lớn image, audio, video file, … Nó loại hệ thống file để lưu giữ file liệu lưu giữ bên Collection MongoDB GridFS có khả lưu giữ file kích cỡ lớn giới hạn kích cỡ 16 MB Document GridFS phân chia file thành Chunk lưu giữ mảng liệu Document riêng, kích cỡ tối đa 255k Theo mặc định, GridFS sử dụng hai Collection fs.files fs.chunks để lưu giữ metadata file chunk Mỗi Chunk nhận diện trường _id ObjectId fs.fileshoạt động Document cha Trường files_id fs.chunks liên kết Chunk tới Document cha Dưới Document mẫu fs.files collection: { "filename": "test.txt", "chunkSize": NumberInt(261120), "uploadDate": ISODate("2014-04-13T11:32:33.557Z"), "md5": "7b762939321e146569b07f72c62cca4f", "length": NumberInt(646) } Document xác định tên file, kích cỡ chunk, ngày cập nhật, độ dài Dưới Document mẫu fs.chunks document: { "files_id": ObjectId("534a75d19f54bfec8a2fe44b"), "data": "Mongo Binary Data" } "n": NumberInt(0), Thêm File tới GridFS Bây giờ, lưu giữ mp3 file sử dụng GridFS với lệnh put Chúng ta sử dụng tiện ích mongofiles.exe có thư mục bin thư mục cài đặt MongoDB Mở dòng nhắc lệnh, điều hướng tới mongofiles.exe thư mục bin thư mục cài đặt MongoDB soạn code sau: >mongofiles.exe -d gridfs put song.mp3 http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/mongodb/index.jsp Copyright © vietjack.com Ở đây, gridfs tên Database file lưu giữ Nếu Database khơng tồn MongoDB tự động tạo Document song.mp3 tên file tải lên Để quan sát Document file Database, bạn sử dụng truy vấn find >db.fs.files.find() Lệnh cho kết quả: { _id: ObjectId('534a811bf8b4aa4d33fdf94d'), filename: "song.mp3", chunkSize: 261120, uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41", length: 10401959 } Chúng ta quan sát tất Chunk có mặt fs.chunks collection liên quan tới file lưu giữ với phần code sau, sử dụng document id trả từ truy vấn trước >db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')}) Với tôi, truy vấn trả 40 Document, nghĩa toàn mp3 document phân chia thành 40 chunk http://vietjack.com/ Trang chia sẻ các bài học online miễn phí ... Trang chia sẻ các bài học online miễn phí ...http://vietjack.com /mongodb/ index.jsp Copyright © vietjack.com Ở đây, gridfs tên Database... "song.mp3", chunkSize: 261120, uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41", length: 10401959 } Chúng ta quan sát tất Chunk có mặt fs.chunks collection liên quan tới file