mongodb - 如何将文件保存到 MongoDB?

标签 mongodb file-upload

我想将用户选择的文件保存到 MongoDB。如何正确地将文件添加到 BSON 对象以将其添加到 MongoDB?如果我的方法不正确,请指出正确的方向。

下面是客户端代码。这个 jQuery 函数在每个输入字段上收集文本(文件部分需要帮助)并将其作为 BSON 对象发送到服务器。

$('#add').click(function()
            {
                console.log('Creating JSON object...');
                var classCode = $('#classCode').val();
                var professor = $('#professor').val();
                var description = $('#description').val();
                var file = $('#file').val();

                var document = 
                {
                    'classCode':classCode,
                    'professor':professor,
                    'description':description,
                    'file':file,
                    'dateUploaded':new Date(),
                    'rating':0 
                };
                console.log('Adding document.');
                socket.emit('addDocument', document);
            });

表单的 HTML:

   <form>
        <input type = 'text' placeholder = 'Class code' id = 'classCode'/>
        <input type = 'text' placeholder = 'Document description' id = 'description'/>
        <input type = 'text' placeholder = 'Professor' id = 'professor'/>
        <input type = 'file' id = 'file'/>
        <input type = 'submit' id = 'add'/>
    </form>

CoffeeScript 中的服务器端代码:

#Uploads a document to the server. documentData is sent via javascript from submit.html
            socket.on 'addDocument', (documentData) ->
                console.log 'Adding document: ' + documentData
                db.collection 'documents', (err, collection) ->
                    collection.insert documentData, safe:false
                    return

最佳答案

如果您的文件足够小(小于 16 兆字节),您可以将文件嵌入到 BSON 文档中,而不是增加 GridFS 的复杂性。

BSON 具有二进制数据类型,任何驱动程序都应提供对其的访问权限。

如果您的文件是文本文件,您可以将其存储为 UTF8 字符串。

关于mongodb - 如何将文件保存到 MongoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13907509/

相关文章:

node.js - Angular 6 + NodeJS + MongoDB

java - 如何从客户端直接上传图片到服务器

Angular 2 - 如何上传文件并存储在本地文件夹中

javascript - .net Core 2.0 文件上传大小限制

mongodb - 如何在mongoengine中做 "group by"

java - MongoDb 不保存 Spring 应用程序的 Java POJO 部分

windows - Mongodb Windows 安装程序 "admin web console waiting for connections on port 28017"错误

python - 使用 pymongo 在 Mongodb 的 GridFS 中保存文件会导致文件被截断 - Windows 7 上的 python 2.7

HTML5 拖放文件上传到 Java Servlet

javascript - 替换和预览多张图片上传