MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडीबी ग्रिडएफएस पूछताछ?

ग्रिडएफएस प्रत्येक फाइल के लिए कई हिस्सों को संग्रहित करके काम करता है। इस तरह, आप पूरी फाइल को रैम में स्टोर किए बिना बहुत बड़ी फाइलों को डिलीवर और स्टोर कर सकते हैं। साथ ही, यह आपको अधिकतम दस्तावेज़ आकार से बड़ी फ़ाइलों को संग्रहीत करने में सक्षम बनाता है। अनुशंसित चंक आकार 256kb है।

फ़ाइल मेटाडेटा फ़ील्ड का उपयोग अतिरिक्त फ़ाइल-विशिष्ट मेटाडेटा को संग्रहीत करने के लिए किया जा सकता है, जो मेटाडेटा को एक अलग दस्तावेज़ में संग्रहीत करने की तुलना में अधिक कुशल हो सकता है। यह आपकी सटीक आवश्यकताओं पर बहुत निर्भर करता है, लेकिन मेटाडेटा फ़ील्ड, सामान्य रूप से, बहुत अधिक लचीलापन प्रदान करता है। ध्यान रखें कि कुछ अधिक स्पष्ट मेटाडेटा पहले से ही fs.files . का हिस्सा है दस्तावेज़, डिफ़ॉल्ट रूप से:

> 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"
}

GridFS से फ़ाइल को वास्तव में पढ़ने के लिए आपको fs.files से फ़ाइल दस्तावेज़ प्राप्त करना होगा और भाग fs.chunks . से . ऐसा करने का सबसे कारगर तरीका यह है कि इसे क्लाइंट चंक-बाय-चंक पर स्ट्रीम किया जाए, ताकि आपको पूरी फाइल को रैम में लोड न करना पड़े। chunks संग्रह में निम्नलिखित संरचना है:

> 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 */
}

यदि आप metadata का उपयोग करना चाहते हैं fs.files . का क्षेत्र अपने प्रश्नों के लिए, सुनिश्चित करें कि आप डॉट नोटेशन को समझते हैं, उदा.

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

यह भी सुनिश्चित करें कि आपके प्रश्न explain() . का उपयोग करके अनुक्रमणिका का उपयोग कर सकते हैं ।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एक सरणी फ़ील्ड का मिलान करना जिसमें MongoDB में दिए गए सरणी का कोई भी संयोजन होता है

  2. mongodb:मैं कुल आदेश के लिए निष्पादन समय कैसे देख सकता हूं?

  3. मोंगोडीबी $वर्ष

  4. जावा/मोंगोडीबी क्वेरी तिथि के अनुसार

  5. मोंगो में विरल अनुक्रमणिका और अशक्त मान