我尝试将上传文件的内容保存在集合中:
export const Files = new Mongo.Collection('files');
Meteor.methods({
'saveFileToDB': function (buffer) {
Files.insert({ data:buffer,
createdAt: new Date(),
owner: this.userId,
username: Meteor.users.findOne(this.userId).username
});
},
});
在另一个文件中我想检索保存的文件。首先,我不知道应该传递什么 id 。假设集合中有一个文件,或者我想要第一个文件,或者当前用户拥有的文件。我尝试过,我将 fileId 传递为 1 但它不起作用。我实际上不知道下面的问号:
import {Files} from "./files";
Meteor.methods({
'slides.readFileFromDB'(fileId) {
if (Files.???) { //contain any data
const text = Files.findOne(???);
console.log(text);
// Meteor.call('slides.insert', text);
return text;
}
})
});
最佳答案
有一个特殊的层用于将文件存储为 block ,称为 GridFs因为当您尝试存储大于 16MB 的二进制文件时,普通集合会出现问题。
Meteor 中还有一个完善的包装器用于处理文件。查看以下包:https://github.com/VeliovGroup/Meteor-Files
关于javascript - Meteor:如何在 mongodb 集合中存储和检索文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58415779/