新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

mongodb怎么存储海量文件,mongodb存文件 合适吗

发布时间:2023-11-02 00:43:35

mongodb怎样存储海量文件

在MongoDB中存储海量文件,可使用GridFS,它是MongoDB提供的一种存储大文件的机制。

GridFS将大文件分割成多个小的块(chunks),每一个块的默许大小为255KB,然后将这些块存储在一个名为"chunks"的集合中。同时,它还会在一个名为"files"的集合中存储文件的元数据。

以下是使用GridFS存储海量文件的步骤:

  1. 创建一个GridFS对象:

    const gridfs = require('gridfs-stream');
    const mongoose = require('mongoose');
    
    gridfs.mongo = mongoose.mongo;
    const conn = mongoose.createConnection('mongodb://localhost/mydatabase');
    
    const gfs = gridfs(conn.db);
    
  2. 将文件存储到GridFS中:

    const fs = require('fs');
    
    const writestream = gfs.createWriteStream({ filename: 'example.txt' });
    fs.createReadStream('path/to/example.txt').pipe(writestream);
    
  3. 从GridFS中获得文件:

    const readstream = gfs.createReadStream({ filename: 'example.txt' });
    readstream.pipe(fs.createWriteStream('path/to/save/example.txt'));
    
  4. 删除GridFS中的文件:

    gfs.files.remove({ filename: 'example.txt' }, (err) => {
      if (err) {
        console.log(err);
      }
      console.log('File deleted');
    });
    

GridFS提供了一种有效的方式来存储和检索海量文件,并且能够处理大于16MB的文件。