当前位置: 首页 > 面试题库 >

golang mongodb(mgo)未插入文档

孟和怡
2023-03-14
问题内容

我在使用mgo将mongodb中保留golang结构时遇到问题。

type AN_Track_Log struct {
    Id                       bson.ObjectId `bson:"_id,omitempty"`
    user_session_id_str      string       `bson:"user_session_id_str"`

    googleanaly_pixel_id_str string `bson:"googleanaly_pixel_id_str"`
    perfaud_pixel_id_str     string `bson:"perfaud_pixel_id_str"`
    site_id_str              string `bson:"site_id_str"`
    metric_str               string `bson:"metric_str"`
    value_str                string `bson:"value_str"`
    event_str                string `bson:"event_str"`
    location_id_str          string `bson:"location_id_str"`
    referer_str              string `bson:"referer_str"`
    track_origin_str         string `bson:"track_origin_str"`
    fingerprint_str          string `bson:"fingerprint_str"`
    ...
}

p_track_log.Id = bson.NewObjectId()
err := p_mongodb_coll.Insert(&p_track_log)

问题是,在完成Insert()调用后,唯一保留在数据库中的是空文档

{u'_id': ObjectId('561809d20037873154000003')}

我检查struct字段是否确实已设置,并且不为空。关于为什么这样的任何想法。提示表示赞赏:)谢谢


问题答案:

您需要通过以大写字母开头的字段名称来导出字段。

type AN_Track_Log struct {
  Id                       bson.ObjectId `bson:"_id,omitempty"`
  User_session_id_str      string       `bson:"user_session_id_str"`

  Googleanaly_pixel_id_str string `bson:"googleanaly_pixel_id_str"`
  ...
}


 类似资料:
  • mgo

    mgo 是 MongoDB 的 GO 语言驱动包,它遵循标准的Go习惯用法,通过非常简单的API来实现丰富且经过测试的功能选择。 安装方法:go get gopkg.in/mgo.v2 Highlights 集群发现与交流 故障转移管理 同步与并发 结果预取 灵活的序列化 琐碎的一致性级别管理 具有池集成的身份验证支持 GridFS支持 经过全面测试

  • 问题内容: 我一直使用类似于以下内容的方法来实现它: …但是一旦加载,就会发生主键冲突。这是唯一插入到该表中的唯一语句。那么这是否意味着上述陈述不是原子的? 问题在于,这几乎不可能随意重建。 也许我可以将其更改为以下内容: 虽然,也许我使用了错误的锁,或者使用了过多的锁之类的东西。 看到了其他问题,那里的答案都提示“ IF(SELECT COUNT(*)…INSERT”等),但我始终处于(也许不正

  • 主要内容:insert() 与 save() 方法,insertOne() 方法,insertMany() 方法前面我们已经介绍了如何在 MongoDB 中 创建数据库和 创建集合,接下来我们再来介绍一下如何在集合中插入文档。文档是 MongoDB 中数据的基本单位,由 BSON 格式(一种计算机数据交换格式,类似于 JSON)的键/值对组成。 insert() 与 save() 方法 您可以使用 MongoDB 中的 insert() 或 save() 方法向集合中插入文档,语法如下: db.

  • 问题内容: 我正在尝试将值插入Android应用程序数据库。我正在编写以下代码: 我不知道是什么问题。所以我发布了Logcat: 问题答案: 通常,最好将包装方法(在您的情况下)分隔在单独的类中。我建议您使用名称创建一个新类,并在该类中添加所有包装方法,以使您的生活更轻松。 该类的代码如下所示:

  • insertText(int $row, int $column, string|int|double $data[, string $format, resource $formatHandler]) int $row $excel = new \Vtiful\Kernel\Excel($config); ​ $textFile = $excel->fileName("free.xlsx")

  • 问题内容: 我正在使用以下内容尝试将记录插入到postgresql数据库表中,但是它不起作用。我没有任何错误,但是表中没有记录。我需要提交或其他东西吗?我正在使用随Bitnami djangostack安装安装的postgresql数据库。 问题答案: 如果不想将每个条目都提交到数据库,则可以添加以下行: 因此,您得到的代码将是: