无法使用 mgo 按 ObjectId 从 MongoDB 获取数据

Can not get data by ObjectId from MongoDB using mgo

我有一个PersonalAccount类型

type PersonalAccount struct {
        ID        bson.ObjectId   `json:"id" bson:"_id,omitempty"`
}

然后我通过 HTTP 请求得到一个编组 PersonalAccount,当我检查 ID 类型时,数据被成功解组。 这是一个bson.ObjecID

问题出在我尝试以下代码时:

var m PersonalAccount = unmarshaledAccount
mgo.DB("dbname").C("colname").FindId(m.ID)

它 returns 一个错误,表示找不到它。

我也试过:

var m PersonalAccount = unmarshaledAccount
mgo.DB("dbname").C("colname").Find(bson.M{"_id": m.ID})

但运气不好。

你可以试试这个

c.FindId(bson.M{"_id": bson.ObjectIdHex("56bdd27ecfa93bfe3d35047d")})

也许它会解决你的问题