go - 如何从mongo-go-driver光标获取ObjectID为String?

标签 go bson mongo-go

我想将ObjectID作为字符串获取,因为我还有其他存储类型,因此我想避免在我的结构中使用primary.ObjectID来保持各层独立。
我是Golang的新手,谢谢。

package listing

type Card struct {
    ID       string
    Hanzi    string
    Pinyin   string
    Traducao string
}

我的存储文件:
包装储物
func (m *Mongodb)GetCards() []*listing.Card {
    var list []*listing.Card

    collection := m.Client.Database("flashcards").Collection("cards")
    cur, err := collection.Find(context.TODO(), bson.M{})

    if err != nil {
        log.Fatal("Erro buscando cards:", err)
    }
    for cur.Next(context.TODO()) {
        var card listing.Card
        err = cur.Decode(&card)
        if err != nil {
            log.Fatal("Erro decodificando documento", err)
        }
        list = append(list, &card)
    }
    return list
}

最佳答案

好的,我知道了。
我创建了另一个结构来容纳ObjectId

type HexId struct {
    ID primitive.ObjectID `bson:"_id"`
}

然后我使用Hex()将值传递给Card.ID
err = cur.Decode(&card)
err = cur.Decode(&hexId)
card.ID = hexId.ID.Hex()

现在,我可以用它来建立链接。

关于go - 如何从mongo-go-driver光标获取ObjectID为String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61743488/

相关文章:

Golang sort.Swap 方法

node.js - 在 Node.js 中将二进制数据读/写到 MongoDB

mongodb - UpdateOne 因 E11000 重复键错误而失败

json - Golang bson structs - 对 json 中的单个字段使用多个字段名称,但只有一个用于写入数据库

c - LibBSON 导出到缓冲区

mongodb - 使用golang mongo-driver,MongoDB更新操作不起作用

json - 为什么我从 mongodb 的 json 中的某些字段的值全为零?

go - 将字节 slice 插入 sqlite blob

go - 无法让测试适用于 INSERT 语句

go - io.Writer 的日志数据