繁体   English   中英

使用GridFS在mongoDB中存储文件

[英]store files in mongoDB withour GridFS

我在使用MEAN堆栈开发的Web应用程序上工作,我需要在不调用GridF的情况下将文件存储在mongoDB中,因为后来这些文件很少,我做了很多研究,但我总是找到GridFS。

MongoDB具有二进制类型 它非常容易使用:

var fs = require('fs');

var mongo = require('mongodb');
var MongoClient = mongo.MongoClient;
var Binary = mongo.Binary;

// Connection url
var url = 'mongodb://localhost:27017/test';

// Connect using MongoClient
MongoClient.connect(url).then(function (db) {
    var collection = db.collection('bins');

    return collection.insert({
        name: 'image2',
        // the constructor takes a Buffer
        bin: new Binary(fs.readFileSync(__dirname + '/img.jpg'))
    }).then(function () {
        console.log('inserted');
        db.close();
    }).catch(function (err) {
        console.log(err);
    });
});

检索存储的文件:

MongoClient.connect(url).then(function (db) {
    var collection = db.collection('bins');

    return collection.findOne({ name: 'image2' }).then(function (doc) {
        console.log(doc);

        fs.writeFileSync(__dirname + '/out.jpg', doc.bin.buffer);

        db.close();
    })
});

二进制类型的用法可以是隐含的。 这也将创建一个二进制字段:

collection.insert({
    name: 'image2',
    bin: fs.readFileSync(__dirname + '/img.jpg')
})

请记住,MongoDB文档的总大小限制16MB

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM