英文:
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)
它返回一个错误,说找不到。
我还尝试了以下代码:
var m PersonalAccount = unmarshaledAccount
mgo.DB("dbname").C("colname").Find(bson.M{"_id": m.ID})
但没有成功。
英文:
I have a PersonalAccount
type as
type PersonalAccount struct {
ID bson.ObjectId `json:"id" bson:"_id,omitempty"`
}
then I get a marshaled PersonalAccount
through an HTTP request, and the data is unmarshaled successfully and when I check the ID type.
It is a bson.ObjecID
The problem is when I try the code below:
var m PersonalAccount = unmarshaledAccount
mgo.DB("dbname").C("colname").FindId(m.ID)
It returns an error that says it is not found.
I have also tried:
var m PersonalAccount = unmarshaledAccount
mgo.DB("dbname").C("colname").Find(bson.M{"_id": m.ID})
but with no luck.
答案1
得分: 0
你可以尝试这样做:
c.FindId(bson.M{"_id": bson.ObjectIdHex("56bdd27ecfa93bfe3d35047d")})
也许这能解决你的问题。
英文:
You can try this
c.FindId(bson.M{"_id": bson.ObjectIdHex("56bdd27ecfa93bfe3d35047d")})
may be it will solve your problem
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论