Я работаю над веб-приложением, разработанным со стеком MEAN. Мне нужно хранить файлы в mongoDB без вызова GridFs, так как это позже имеет слабость с небольшими файлами, я провел много исследований, но всегда нашел GridFS.хранить файлы в mongoDB withour GridFS
ответ
MongoDB имеет Binary type. Это очень проста в использовании:
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 total size limit.
Внимание! убедитесь, что общий размер документа не превышает 16 МБ. Это жесткое ограничение MongoDB, так что на всякий случай. – Saleem
@Saleem Конечно, но OP, похоже, знает об этом пределе, он/она отбрасывал GridFS из-за слабости небольшими файлами *. – Shanoor
Согласен. Люди с различным опытом посещают переполнение стека для поиска решения, и часто они неправильно читают, не реализуя компромиссы. Тем не менее, у вас есть хорошее решение с лучшим объяснением, поэтому большие пальцы! – Saleem
- 1. Как хранить файлы в MongoDB?
- 2. MongoDB GridFs с C#, как хранить файлы, такие как изображения?
- 3. Haskell mongodb gridfs
- 4. Производительность в MongoDB и GridFS
- 5. Полнотекстовый поиск по MongoDB GridFS?
- 6. Mongodb to Mongodb GridFS
- 7. Как хранить и получать двоичные файлы из GridFS
- 8. Импорт в MongoDB/GridFS
- 9. Golang MongoDb GridFs Тестирование
- 10. Хранить изображения внутри документа в MongoDB без использования GridFS
- 11. Вставить файлы в MongoDBs GridFS
- 12. Хранить изображения в MongoDB
- 13. Mongodb GridFs с C++
- 14. MongoDB GridFS ведро?
- 15. Gridfs in mongodb
- 16. MongoDB GridFS Разъяснение
- 17. MongoDB Ошибка GridFS
- 18. MongoDB gridfs метод
- 19. MongoDB и GridFS
- 20. MongoDB Update GridFS Запись
- 21. падение все файлы в gridfs MongoDB с PyMongo
- 22. Настройка GridFS Chunksize в MongoDB
- 23. Сохранение изображений в MongoDB GridFS
- 24. хранить файлы в mongodb с помощью mongoose
- 25. MongoDB: Получение списка ведер, доступных в GridFS?
- 26. Nginx записывает файлы в GridFS
- 27. MongoDB GridFS одноразовое использование запроса в Ruby
- 28. Траверс и импорт в GridFS/MongoDB
- 29. скачать файлы с помощью Yii2 gridFS
- 30. mongodb gridfs несущая или суставная или другая?
Вы можете использовать GridFS только для больших файлов и что-то еще (непосредственно вставлять в документ?) Для маленьких файлов. – Thilo