MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Meminta MongoDB GridFS?

GridFS bekerja dengan menyimpan sejumlah potongan untuk setiap file. Dengan cara ini, Anda dapat mengirim dan menyimpan file yang sangat besar tanpa harus menyimpan seluruh file di RAM. Juga, ini memungkinkan Anda untuk menyimpan file yang lebih besar dari ukuran dokumen maksimum. Ukuran potongan yang disarankan adalah 256kb.

Bidang metadata file dapat digunakan untuk menyimpan metadata khusus file tambahan, yang dapat lebih efisien daripada menyimpan metadata dalam dokumen terpisah. Ini sangat tergantung pada kebutuhan Anda, tetapi bidang metadata, secara umum, menawarkan banyak fleksibilitas. Ingatlah bahwa beberapa metadata yang lebih jelas sudah menjadi bagian dari fs.files dokumen, secara default:

> db.fs.files.findOne();
{
    "_id" : ObjectId("4f9d4172b2ceac15506445e1"),
    "filename" : "2e117dc7f5ba434c90be29c767426c29",
    "length" : 486912,
    "chunkSize" : 262144,
    "uploadDate" : ISODate("2011-10-18T09:05:54.851Z"),
    "md5" : "4f31970165766913fdece5417f7fa4a8",
    "contentType" : "application/pdf"
}

Untuk benar-benar membaca file dari GridFS, Anda harus mengambil dokumen file dari fs.files dan potongan dari fs.chunks . Cara paling efisien untuk melakukannya adalah dengan mengalirkan ini ke klien sepotong demi sepotong, jadi Anda tidak perlu memuat seluruh file dalam RAM. chunks koleksi memiliki struktur berikut:

> db.fs.chunks.findOne({}, {"data" :0});
{
    "_id" : ObjectId("4e9d4172b2ceac15506445e1"),
    "files_id" : ObjectId("4f9d4172b2ceac15506445e1"),
    "n" : 0, // this is the 0th chunk of the file
    "data" : /* loads of data */
}

Jika Anda ingin menggunakan metadata bidang fs.files untuk pertanyaan Anda, pastikan Anda memahami notasi titik, mis.

> db.fs.files.find({"metadata.OwnerId": new ObjectId("..."), 
                    "metadata.ImageWidth" : 280});

juga pastikan kueri Anda dapat menggunakan indeks menggunakan explain() .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hashing kata sandi luwak

  2. Memperbarui Kamus di Mongodb

  3. Mongoose - RangeError:Ukuran Tumpukan Panggilan Maksimum Melebihi

  4. Hal-Hal Utama yang Harus Dipantau di MongoDB

  5. Cara menggunakan Spring Boot dengan MongoDB