从 mgo 网格文件中提取 Id 的字符串值



作为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。

最新更新