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

ऑडियो पुनर्प्राप्त करें - बाइनरी फ़ाइल- मेरे Mlab में संग्रहीत

16 एमबी से छोटी फ़ाइलों के लिए आपको ग्रिडएफएस की आवश्यकता नहीं है। आप BSON के बाइनरी प्रकार का उपयोग करके सीधे MongoDB में बाइनरी डेटा स्टोर कर सकते हैं। या अपने बाइनरी डेटा को एन्कोड करें और इसे एक स्ट्रिंग के रूप में स्टोर करें। बाइनरी डेटा को स्ट्रिंग्स के रूप में संग्रहीत करते समय बेस 64 एक सामान्य एन्कोडिंग विकल्प है।

एक बार जब आप डेटाबेस से डेटा प्राप्त कर लेते हैं, तो आप इसे fs.writeFile .

यदि आपने अपना डेटा बाइनरी प्रकार के रूप में सहेजा है, तो आप buffer पास कर सकते हैं करने के लिए fs.writeFile . यदि आपने अपना डेटा एन्कोडेड स्ट्रिंग के रूप में सहेजा है, तो आप एक स्ट्रिंग और एक encoding पास कर सकते हैं विकल्प।

(यदि आप एक्सप्रेस के साथ फ़ाइल की सेवा करना चाहते हैं, तो आप सामग्री प्रकार सेट कर सकते हैं और res.send )

यहाँ NodeJS में एक छोटा सा उदाहरण है। यह डिस्क से एक ऑडियो फ़ाइल पढ़ता है, इसे बाइनरी प्रकार के रूप में एक MongoDB डेटाबेस में सहेजता है (MongoDB ड्राइवर के बाइनरी क्लास), इसे डेटाबेस से वापस प्राप्त करता है, और इसे डिस्क पर एक नई फ़ाइल में लिखता है।

const mongodb = require('mongodb')
const util = require('util')
const fs = require('fs')
const readFile = util.promisify(fs.readFile)
const writeFile = util.promisify(fs.writeFile)

async function main() {
  const client = await mongodb.MongoClient.connect(process.env.MONGO_URI)
  console.log('connected')

  let db = await client.db('dbname')

  // Reading in binary data from a file. data is a buffer.
  let data = await readFile(__dirname + '/sample.mp3')

  // Insert binary data to the database
  let res = await db.collection('coll').insert({data: new mongodb.Binary(data)})
  console.log(res)
  let objectId = res.ops[0]._id

  // Retrieve binary data from the database
  let obj = await db.collection('coll').findOne({_id: objectId})
  console.log(obj)

  // *** This is the key part ***
  // use obj.data.read to get a buffer from the binary data and write that buffer to a file
  await writeFile(__dirname + '/out.mp3', obj.data.read(0, obj.data.length()))

  console.log('done')
}

main()

हालांकि लोग डेटाबेस में बाइनरी डेटा स्टोर करते हैं, लेकिन लोगों के लिए फाइल सिस्टम या ऑब्जेक्ट स्टोरेज (जैसे अमेज़ॅन एस 3) में फाइलों को स्टोर करना शायद सबसे आम है। फिर वे डेटाबेस में उस फ़ाइल के लिए एक लिंक संग्रहीत करेंगे और लिंक का उपयोग करके उस फ़ाइल को पुनर्प्राप्त करेंगे। आप वह कर सकते हैं जिसमें आप अधिक सहज महसूस करते हैं।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB और Mongoose के बीच अंतर

  2. सुरक्षित सम्मिलन के लिए पाइमोंगो अनुमतियां जारी करती हैं

  3. क्या मैं मोंगोडीबी को इन-मेमोरी के रूप में कॉन्फ़िगर कर सकता हूं?

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

  5. MongoDb . में एक गहरा रिकॉर्ड अपडेट कर रहा है