Как использовать openUploadStream с корзиной Grid-fs

#node.js #mongodb #mongoose #gridfs #gridfs-stream

#node.js #mongodb #мангуст #gridfs #gridfs-stream

Вопрос:

Я хотел бы использовать модель mongodb с GridFSBucket.

Я понял, что вы можете использовать метаданные с помощью GridFSUploadOptions, и, похоже, в этом случае они функционируют как модель, но я получаю сообщение об ошибке «TypeError: mongodb.GridFSUploadOptions не является конструктором», когда я его использую

        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")));

  

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

Ответ №1:

Я получил это после 3 дней мозгового штурма, gridfs хранит данные в виде .files и .chunks, я не знал, как построить модель для этого, после исследования я понял, что вы могли бы добавить больше информации в .файлы, хранящиеся в базе данных о данных. В Интернете нет ничего о том, как это сделать, только подсказки, подобные этому «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});
  

проверьте .файлы в базе данных, метаданные будут заполнены.