Mongodb 如何在golang的MGO mongo db驱动程序中获取我的文档的ObjectId(_id)

Mongodb 如何在golang的MGO mongo db驱动程序中获取我的文档的ObjectId(_id),mongodb,go,mgo,Mongodb,Go,Mgo,我与MGO合作(因为我没有发现比它更好的东西)。 我已经玩过了,并且得到了一些结果,但是我不知道如何获得收到的文档的_id(内部Mongo ObjectId) 例如: type FunnyNumber struct { Value int _id string } session, err := mgo.Dial("127.0.0.1:27017") if err != nil { panic(err) } defer session.Close() // Optio

我与MGO合作(因为我没有发现比它更好的东西)。 我已经玩过了,并且得到了一些结果,但是我不知道如何获得收到的文档的_id(内部Mongo ObjectId)

例如:

type FunnyNumber struct {
    Value int
    _id string
}

session, err := mgo.Dial("127.0.0.1:27017")
if err != nil {
    panic(err)
}
defer session.Close()

// Optional. Switch the session to a monotonic behavior.
session.SetMode(mgo.Monotonic, true)

c := session.DB("m101").C("funnynumbers")

funnynumber := FunnyNumber{}
err = c.Find(bson.M{}).One(&funnynumber)
if err != nil {
    log.Fatal(err)
}

fmt.Println("Id one:", funnynumber._id)  // Nothing here? WHy? How to get it.
fmt.Println("Value one:", funnynumber.Value)  // 62. It's OK!
有人能帮帮我吗?Ot我在哪里可以读到一些关于它的信息?我在MGO文件里没找到任何东西

我的文档的架构是:

{ "_id" : ObjectId("50778ce69331a280cf4bcf90"), "value" : 62 }
谢谢

  • \u id
    变量更改为大写(id)以使其可导出
  • 使用
    bson.ObjectID
    作为其类型
  • 为struct
    FunnyNumber
    Id变量添加标记。 场
  • 要获得对象Id值,应该做以上三件事

    import "labix.org/v2/mgo/bson"
    
    type FunnyNumber struct {
        Value int `json:"value"`
        Id bson.ObjectId `bson:"_id,omitempty"`` // only uppercase variables can be exported
    }
    

    查看软件包,了解在使用mongodb时如何使用bson标记的更多信息

    使用mgo软件包获取对象ID\u ID不是导出字段,这意味着mgo无法为其赋值。感谢大家的帮助。希曼苏-我只是想知道怎么做=)彼得-是的,但一定有可能)谢谢你。现在我得到了这个结果
    ObjectDhex(“50778CE69331A280CF4BCFFDD”)
    ,但我还有几个问题1)要将这个ID转换成正常值,我应该使用
    **func objectDhex**?
    2)你能解释一下这个东西吗-
    ID bson.ObjectId
    ?这不是golang类型。它是MGO.BSON的直接类型吗?如果我不导出BSON包,它是否仍然可用?3) `
    bson:“\u id,省略empty”
    `这是什么?值int
    json也是一样:“值”
    ?这是什么->
    json:“value”
    谢谢
    json:“value”
    是封送到json时使用的标记。看一看bson包,将ObjectId转换为stringHimanshu的十六进制表示形式-非常感谢您的朋友!你帮了我很多。我们将检查它。我们还可以使用函数来获取对象的十六进制表示ID@Velidan在插入文档直到创建文档时,对象id由mongo自己创建。如果您创建了一个唯一的整数id。Mongo将使用它作为文档的唯一id。