package webfilesystem import ( "context" "go.mongodb.org/mongo-driver/bson/primitive" ) type readStruct struct { File interface{} Filter interface{} } func (fs *WebFileSystem) readMongo(read readStruct) (*interface{}, error) { err := fs.webfsCollection.FindOne(fs.ctx, read.Filter).Decode(read.File) if err != nil { return nil, err } return &read.File, nil } func (fs *WebFileSystem) writeMongo(file WebFSFile, parentPath string) (primitive.ObjectID, error) { //TODO Check file existance parentDir, err := fs.NewRead(parentPath) if err != nil { return primitive.NilObjectID, err } res, err := fs.webfsCollection.InsertOne(context.Background(), &file) if err != nil { return primitive.NilObjectID, err } fileId := fs.castInsertId(res) fs.insertFileToDirectory(fileId, parentDir.MongoId) return fileId, nil }