从 mgo GridFile 中提取 Id 的字符串值
Extract string value of Id from mgo GridFile
作为 Go 的新手,我很难使用 mgo。
我正在使用 mgo 来获取这样的文件:
gridfs := db.GridFS("fs")
allFiles := gridfs.Find(nil).Iter()
然后我使用返回的迭代器,如
var f *mgo.GridFile
for gridfs.OpenNext(allFiles, &f) {
//use f.Id()
}
我想开始使用 f.Id() 作为字符串,但我无法转换。我发现的一种方法是使用 fileId := (f.Id().(bson.ObjectId)).Hex()
,它只允许我编译但在运行时失败并显示消息 interface conversion: interface {} is bson.ObjectId, not bson.ObjectId
我已经在这上面花了很多时间,如果无法使用 GridFile
进行转换,我绝对愿意改变我获取文件的方式。
我将不胜感激任何帮助。谢谢。
@icza 的正确答案。我有 2 个版本的 mgo。
作为 Go 的新手,我很难使用 mgo。 我正在使用 mgo 来获取这样的文件:
gridfs := db.GridFS("fs")
allFiles := gridfs.Find(nil).Iter()
然后我使用返回的迭代器,如
var f *mgo.GridFile
for gridfs.OpenNext(allFiles, &f) {
//use f.Id()
}
我想开始使用 f.Id() 作为字符串,但我无法转换。我发现的一种方法是使用 fileId := (f.Id().(bson.ObjectId)).Hex()
,它只允许我编译但在运行时失败并显示消息 interface conversion: interface {} is bson.ObjectId, not bson.ObjectId
我已经在这上面花了很多时间,如果无法使用 GridFile
进行转换,我绝对愿意改变我获取文件的方式。
我将不胜感激任何帮助。谢谢。
@icza 的正确答案。我有 2 个版本的 mgo。