Tải bản đầy đủ (.pdf) (2 trang)

GridFS trong MongoDB | 41 bài học miễn phí MongoDB hay nhất

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (134.4 KB, 2 trang )


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Copyright
 ©
 vietjack.com
 



 

GridFS trong MongoDB
Giới thiệu GridFS
GridFS là MongoDB Specification để lưu giữ và thu thập các file lớn như các image, audio,
video file, … Nó là một loại của hệ thống file để lưu giữ các file nhưng dữ liệu của nó được
lưu giữ bên trong các Collection của MongoDB. GridFS có khả năng lưu giữ các file ngay
cả khi kích cỡ của nó lớn hơn giới hạn kích cỡ là 16 MB của Document.
GridFS phân chia một file thành các Chunk và lưu giữ mỗi mảng dữ liệu trong một
Document riêng, kích cỡ tối đa của nó là 255k.
Theo mặc định, GridFS sử dụng hai Collection là fs.files và fs.chunks để lưu giữ metadata
của file và các chunk. Mỗi Chunk được nhận diện bởi trường _id ObjectId duy
nhất. fs.fileshoạt động như là một Document cha. Trường files_id trong fs.chunks liên kết
Chunk tới Document cha của nó.
Dưới đây là Document mẫu của 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, và độ dài.
Dưới đây là Document mẫu của fs.chunks document:
{
"files_id": ObjectId("534a75d19f54bfec8a2fe44b"),
"data": "Mongo Binary Data" }

"n": NumberInt(0),


Thêm File tới GridFS
Bây giờ, chúng ta sẽ lưu giữ một mp3 file bởi sử dụng GridFS với lệnh put. Chúng ta sẽ sử
dụng tiện ích mongofiles.exe có trong thư mục bin của thư mục cài đặt MongoDB.
Mở dòng nhắc lệnh, điều hướng tới mongofiles.exe trong thư mục bin của thư mục cài đặt
MongoDB và soạn code sau:
>mongofiles.exe -d gridfs put song.mp3


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 Trang
 chia
 sẻ
 các
 bài
 học
 online
 miễn
 phí
 


 



 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Copyright
 ©
 vietjack.com
 


 
Ở đây, gridfs là tên của Database trong đó file sẽ được lưu giữ. Nếu Database này không
tồn tại thì MongoDB sẽ tự động tạo một Document mới. song.mp3 là tên của file tải lên. Để

quan sát Document của file trong Database, bạn sử dụng truy vấn find.
>db.fs.files.find()

Lệnh trên sẽ cho kết quả:
{
_id: ObjectId('534a811bf8b4aa4d33fdf94d'),
filename: "song.mp3",
chunkSize: 261120,
uploadDate: new Date(1397391643474), md5:
"e4f53379c909f7bed2e9d631e15c1c41",
length: 10401959 }

Chúng ta cũng có thể quan sát tất cả các Chunk có mặt trong fs.chunks collection liên quan
tới file được lưu giữ với phần code sau, sử dụng document id được trả về từ truy vấn
trước.
>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})

Với tôi, truy vấn trả về 40 Document, nghĩa là toàn bộ mp3 document được phân chia thành
40 chunk.


 


 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Trang
 chia
 sẻ
 các

 bài
 học
 online
 miễn
 phí
 


 



×