首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在终端模式下找不到IDE插入的数据?

为什么在终端模式下找不到IDE插入的数据?
EN

Stack Overflow用户
提问于 2019-09-19 10:12:58
回答 1查看 87关注 0票数 0

我试图在MongoDB中通过Goland IDE插入数据。虽然连接是正确的,并且在集成开发环境的输出中我得到了ObjectID,但是我仍然不能直接从终端看到结果。数据库似乎记录了一个没有任何信息的新文档...

OSX,MongoDB是默认设置。驱动程序是'go.mongodb.org/mongo- Driver‘,连接正确。Goland在2019.2.2

代码语言:javascript
运行
复制
// go

type Student struct {
    name string
    sex string
}

newStu := Student{
    name: "Alice",
    sex: "Female",
}

collection := client.Database("mgo_1").Collection("student")

insertResult, err := collection.InsertOne(context.TODO(), newStu)

if err != nil {
   log.Fatal(err)
    }

fmt.Println(insertResult.InsertedID)

这是插入部分,我按照mongodb.com上的指南进行了操作

代码语言:javascript
运行
复制
> db.student.find()
{ "_id" : ObjectId("5d82d826f5e2f29823900275"), "name" : "Michael", "sex" : "Male" }
{ "_id" : ObjectId("5d82d845b8db68b150894f5a") }
{ "_id" : ObjectId("5d82dc2952c638d0970e9356") }
{ "_id" : ObjectId("5d82dcde8cf407b2fb5649e7") }

这是我在另一个终端上查询的结果。除了第一个有一些内容之外,其他三个是我通过Goland三次尝试插入到数据库中的内容。

EN

回答 1

Stack Overflow用户

发布于 2019-09-19 16:02:27

所以你的结构看起来像这样:

代码语言:javascript
运行
复制
type Student struct {
    name string
    sex string
}

namesex字段不以大写开头,因此它们不会导出,因此对反射是不可见的。InsertOne无疑使用反射来确定newStu中的内容,但是Student结构没有导出字段,因此InsertOne根本看不到newStu中的任何字段。

如果您将结构修复为具有导出的字段:

代码语言:javascript
运行
复制
type Student struct {
    Name string
    Sex string
}

然后InsertOne就能弄清楚里面是什么了。MongoDB接口应该自己找出从Name (Go)到name (MongoDB)和Sexsex的映射。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58002802

复制
相关文章

相似问题

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