我为我工作的公司编写了一个聊天应用程序,并且我使用 mgo 驱动程序有一段时间了。现在我们将mgo重构为官方的mongo驱动。我已经实现了 GridFS 来处理聊天文件,因为它们并不大并且简化了工作。以前的 mgo 驱动程序在保存文件时有一个数据列表,其中一个字段是 contentType(对吧?)
因此,在重构此任务中包含的大部分服务后,我注意到新的官方 mongo 驱动程序不执行此操作??
所以我决定尝试手动添加此字段,但后来我到了我不明白该怎么做的地步?
尝试过,options.GridFSUpload().SetMetadata(metadata)但我不明白它的逻辑,互联网上关于在 GO 中工作的新 mongo 驱动程序的结果真的很少。
任何人都可以给我提示如何将自定义字段添加到文件文档中?喜欢内容类型!!
真的很感激。
这是我尝试做的一个例子
// GridFSInsert -
func GridFSInsert(fileName string, data []byte, metadata ...bsonx.Elem) (primitive.ObjectID, error) {
checkMongoConnection(false)
var fileID primitive.ObjectID
bucket, bucketErr := gridFs.NewBucket(
Mongo.Client.Database(Mongo.DBName),
options.GridFSBucket().SetName(gridFSColName),
)
if bucketErr != nil {
return fileID, bucketErr
}
uploadStream, uploadStreamErr := bucket.OpenUploadStream(
fileName,
options.GridFSUpload().SetMetadata(metadata),
)
if uploadStreamErr != nil {
return fileID, uploadStreamErr
}
defer uploadStream.Close()
fileSize, writeErr := uploadStream.Write(data)
if writeErr != nil {
return fileID, writeErr
}
fileID = uploadStream.FileID
log.Printf("Write file to DB was succesful, File size: %d", fileSize)
return fileID, nil
}
对不起,如果我错过了什么,因为我没有像我想的那样有 GO 的经验。
谢谢你的帮助
qq_花开花谢_0
茅侃侃
相关分类