首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang mgo发现

Golang mgo发现
EN

Stack Overflow用户
提问于 2018-09-03 16:38:59
回答 2查看 185关注 0票数 0

我试图在MongoDB中查找我的用户,但当我运行以下代码时:

代码语言:javascript
复制
type Person struct {
    Id bson.ObjectId `bson:"_id,omitempty"`//`json:"id" bson:"_id,omitempty"`
    username string `json:"username" bson:"username"`
    score string `json:"score" bson:"score"`
    level string `json:"level" bson:"level"`
}

result := Person{}
var id = "5b8a45912ed6f24d945bee38"
err = c.Find(bson.M{"_id":bson.ObjectIdHex(id)}).Select(bson.M{"username": 1, "score":1, "level": 1}).One(&result)

fmt.Println(result)

只要它告诉我:

{ObjectIdHex("5b8a45912ed6f24d945bee38") }

并且不要返回其他值!

非常感谢您的宝贵时间!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-03 18:13:46

只是你应该在结构体名称的第一个使用大写字母!而且你也不需要

代码语言:javascript
复制
 Select(bson.M{"username": 1, "score":1, "level": 1})

你可以这样写:

代码语言:javascript
复制
err = c.FindId(bson.ObjectIdHex(id)).One(&result)

祝你好运:)

票数 0
EN

Stack Overflow用户

发布于 2018-09-03 16:46:10

您必须导出所有受编组/解组影响的结构字段,因此请更改它们的名称以大写字母开头:

代码语言:javascript
复制
type Person struct {
    Id       bson.ObjectId `bson:"_id,omitempty"`//`json:"id" bson:"_id,omitempty"`
    Username string        `json:"username" bson:"username"`
    Score    string        `json:"score" bson:"score"`
    Level    string        `json:"level" bson:"level"`
}

另请注意,要通过ID查找文档,可以使用Collection.FindId()

代码语言:javascript
复制
err = c.FindId(bson.ObjectIdHex(id)).
    Select(bson.M{"username": 1, "score":1, "level": 1}).One(&result)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52146057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档