如何将 openUploadStream 与 Grid-fs 存储桶一起使用

How to use openUploadStream with Grid-fs bucket

我想将 mongodb 模型与 GridFSBucket 一起使用。

我意识到您可以将元数据与 GridFSUploadOptions 一起使用,在这种情况下它似乎起到了模型的作用,但是我得到一个错误,"TypeError: mongodb.GridFSUploadOptions is not a constructor" 当我使用它时

       let bucket = new mongodb.GridFSBucket(conn.db, {
            bucketName: 'tracks'
        });

        let options = new mongodb.GridFSUploadOptions();


        let uploadStream = bucket.openUploadStream(trackName, options.metadata(new Document("Speaker", "Bill Gates").append("Duration", "1hr")));

我希望有办法将更多的用户信息添加到创建的文件中。

经过 3 天的头脑风暴,我明白了,gridfs 将数据存储为 .files 和 .chunks,我不知道如何为此构建模型,经过研究我意识到你可以向存储的 .files 添加更多信息在数据库中关于数据。网上没有任何关于如何做到这一点的提示,就像这样 "openUploadStream(filename, options)",经过几个小时的研究,我终于明白了。

let bucket = new mongodb.GridFSBucket(conn.db, {
            bucketName: 'tracks'
        });

        let uploadStream = bucket.openUploadStream(trackName, {chunkSizeBytes:null, metadata:{speaker: "Bill Gates", duration:"1hr"}, contentType: null, aliases: null});

检查数据库中的.files,元数据将被填充。