Подтвердить что ты не робот

Как сохранить файл в MongoDB?

Я хочу сохранить выбранный пользователем файл в 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
4b9b3361

Ответ 1

Чтобы хранить файлы в MongoDB, вы должны попытаться использовать GridFS
Вы можете найти несколько руководств по работе с GridFS (пример).
Проверьте API-интерфейс вашего драйвера MongoDB и попытайтесь его реализовать в своем проекте

Ответ 2

Если ваши файлы достаточно малы (до 16 мегабайт), вместо добавления сложности GridFS вы можете просто вставлять файлы в документы BSON.

BSON имеет двоичный тип данных, к которому должен предоставлять доступ любой из драйверов.

Если ваш файл является текстовым файлом, вы можете просто сохранить его как строку UTF8.