在写mongo增删改查操作时,遇到这样一个问题:我的结构体中存在一个ID字段是我在其他方法需要用到的,而在使用创建方法时,这个字段会导致数据库中创建的记录会有_id和id,其中_id是我需要的,我不希望id的出现。

解决方法:在定义NoteService结构体时,将ID字段的类型更改为primitive.ObjectID类型,并在CreateNote方法中通过primitive.NewObjectID()方法手动为_id字段赋值。具体的代码实现如下:

type MyStruct struct {ID         primitive.ObjectID `bson:"_id,omitempty"`Content    string      `form:"content" bson:"content"`
}
func (service *MyStruct) Create() serializer.Response {client := config.NewMongoClient()myCollection := client.Database("mydb").Collection("mycoll")myStruct := MyStruct{ID:         primitive.NewObjectID(),Content:    service.Content,}objId, err := myCollection .InsertOne(context.TODO(), myStruct)if err != nil {fmt.Println(err)return serializer.Success(serializer.ServerError)}return serializer.Success(objId.InsertedID)
}

在这个示例中,我们将ID字段的类型更改为primitive.ObjectID,并使用primitive.NewObjectID()方法手动为_id字段赋值。在定义ID字段时,我们添加了一个omitempty选项,这意味着如果字段的值为空,则不会将该字段包含在插入文档中。

这样,每次创建新文档时,都会自动为_id字段生成一个唯一的ObjectID值,并且不会在文档中生成一个id字段。

Golang操作mongo中_id与id问题相关推荐

  1. golang操作mongo

    本文采用mongo-driver/mongo驱动操作数据库 设计mongo插件结构 将代码分为如下结构 model : odm模型,主要是映射为数据库存储的表结构 constants : 存储一些常量 ...

  2. golang 操作日期_使用Godate在Golang中轻松进行日期操作

    golang 操作日期 by Kofo Okesola 由Kofo Okesola 使用Godate在Golang中轻松进行日期操作 (Easy date manipulation in Golang ...

  3. js获取html中多个id,js获取数据库中多个id然后进行操作

    function deleteEng() //操作选中数据{ var checkBox = document.getElementsByName("checkall");//在页面 ...

  4. golang操作mongodb的驱动mongo-go-driver的事务支持和访问控制(mongodb4.0)

    关注公众号 风色年代(itfantasycc) 300G微服务资料等你拿! 作者: sdghchj 本文链接:golang操作mongodb的驱动mongo-go-driver的事务支持和访问控制_s ...

  5. sqlite数据库主键自增_sqlite 中主键id自增的方法(转)

    困扰了一段时间,先前的解决方法是定义静态变量rid=0,然后把++rid插入数据库的id列中,但是每次重启的时候,rid就自动从0开始,就会导致有相同的id,插入数据库发生错误.今天在网上又查了一下, ...

  6. 封装一个自己的golang操作MySQL数据库工具

    封装一个自己的golang操作MySQL数据库工具 准备工作 导入驱动 连接mysql 增删改查 增 删 改 查 准备工作 首先我们要准备一个写golang的IDE,我用的是goland,还可以用vs ...

  7. Golang操作sqlite3数据库教程

    Golang操作sqlite3数据库教程 本文介绍sqlite数据库,如何使用sqlite3包操作轻量级关系型数据库. sqlite概述 sqlite是嵌入式关系型数据库引擎,官方描述为自包含的.无服 ...

  8. 芝麻分从本地mongo中获取有效数据工具

    引言: 起因:java接入芝麻分,接口数据为了提高效率,需要储存在mongo中,若接口调用则优先从本地mongo库中查询是否存在有效数据. mongo查询: import com.alibaba.fa ...

  9. mysql根据id删除数据库,MYSQL删除表中的指定ID数据

    MYSQL删除表中的指定ID数据 删除A表中的ID 中的开头以B* 的数据库. 复制代码 代码如下: delete FROM A WHERE id like 'B%' 单独删除 A 表中的ID B 复 ...

最新文章

  1. 【微服务架构】SpringCloud之路由网关(zuul)
  2. es6学习1: 模拟react Comopnent类的实现
  3. sql 密码随机生成
  4. 开发和使用Web用户控件
  5. Log4j每天、每小时、每分钟定时生成日志文件
  6. 06/05/2015
  7. configuration id is generated based on page guid
  8. Halcon求取矩形顶点坐标
  9. Actor-ES框架:Ray-Handler之ToReadHandler编写
  10. oracle ora 01152,ORA-01152 故障解决
  11. Hadoop HIVE 条件控制函数
  12. 设计模式(六)建造者(创建型)
  13. 乐易模块V7.62更新日志
  14. 软件功能性测试方法和流程
  15. 不一样的类小草图形写法
  16. 3.2 Hadoop简介
  17. 如何升级npm的版本
  18. 一起来了解一下FIFO!
  19. 最新导则下:基于遥感解译与GIS技术环境影响评价图件制作实践应用
  20. Vue省市区三级联选择器V-Distpicker的使用

热门文章

  1. Cheating Engine
  2. PyQt_QTimer
  3. 還有以下1篇2015年份、5篇2016年份,含有時評或吵架的文章
  4. 使用MBG生成MyBatis代码(Intellij版本)
  5. 用python将jpg文件转为eps格式
  6. 2022跨境电商物流行业发展趋势报告
  7. 论文阅读 Parallelly Adaptive Graph Convolutional Clustering Model(TNNLS2022)
  8. 播放器技术分享(2):缓冲区管理
  9. linux界面是什么样,Linux界面是怎样的?入门Linux运维学什么
  10. 什么是单例模式,懒汉式和饿汉式使用方式