MongoDB Insert Audio

I injected a million documents containing text into the mongodb database through javascript and php. I would like to know how to insert one million documents related to audio / image into a database.

script I used to insert text:

var minDate = new Date(2012, 0, 1, 0, 0, 0, 0);
var maxDate = new Date(2013, 0, 1, 0, 0, 0, 0);
var delta = maxDate.getTime() - minDate.getTime();

var job_id = arg2;

var documentNumber = arg1;
var batchNumber = 5 * 1000;

var job_name = 'Job#' + job_id
var start = new Date();

var batchDocuments = new Array();
var index = 0;

while(index < documentNumber) {
    var date = new Date(minDate.getTime() + Math.random() * delta);
    var value = Math.random();
    var document = {       
        created_on : date,
        value : value
    };
    batchDocuments[index % batchNumber] = document;
    if((index + 1) % batchNumber == 0) {
        db.randomData.insert(batchDocuments);
    }
    index++;
    if(index % 100000 == 0) {  
        print(job_name + ' inserted ' + index + ' documents.');
    }
}
print(job_name + ' inserted ' + documentNumber + ' in ' + (new Date() - start)/1000.0 + 's');

Is it possible to use a similar script to insert audio / image?

Thank.

+4
source share
1 answer

Yes, but for this you will need a powerful interpreter. You can insert binary data into MongoDB using BinData, which requires a base64 string, and cat () does not convert the binary into a string, except that it does not read binary data.

base64, , cat() script. node.js:

var fs = require('fs');
var b64Str = fs.readFileSync('file.mp3','base64');
fs.writeFileSync('base64ContentFile',b64Str);

, , script, :

var document = {
    created_on : date,
    value : new BinData(0,cat('base64ContentFile'))
};

, mongodb . , base64, db, loop.

https://docs.mongodb.org/manual/reference/mongodb-extended-json/#binary

0

All Articles