iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何正确创建mongo模型和客户端?
  • 440
分享到

如何正确创建mongo模型和客户端?

2024-02-09 07:02:58 440人浏览 薄情痞子
摘要

PHP小编苹果将为你介绍如何正确创建monGo模型和客户端。在使用mongoDB进行开发时,创建模型和客户端是非常重要的一步,它们决定了你在后续操作中的灵活性和效率。首先,你需要通过安

PHP小编苹果将为你介绍如何正确创建monGo模型和客户端。在使用mongoDB进行开发时,创建模型和客户端是非常重要的一步,它们决定了你在后续操作中的灵活性和效率。首先,你需要通过安装MongoDB扩展来启用MongoDB支持。然后,你可以使用MongoDB提供的api来创建模型和客户端。创建模型时,你需要定义集合名称、字段和索引等相关信息。创建客户端时,你需要指定MongoDB的连接信息,如主机名、端口号和认证信息等。通过正确创建模型和客户端,你将能够更好地操作MongoDB数据库,提高开发效率和代码质量。

问题内容

我有一个模型想要插入并从 mongodb 读取:

type TripFeedback struct {
    ID        primitive.ObjectID `JSON:"_id" bson:"_id"`
    UserID    string             `json:"user_id" bson:"user_id"`
    WaybillID uint64             `json:"waybill_id" bson:"waybill_id"`
    Rating    Rating             `json:"rating" bson:"rating"`
    Comment   string             `json:"comment" bson:"comment"`
    CreatedAt time.Time          `json:"created_at" bson:"created_at"`
}

我希望 ID 字段在 mongo 内部自动递增,所以我将 ID 字段保留为空:

feedback := model.NewTripFeedback(
        createRequest.UserID,
        createRequest.WaybillID,
        rating,
        createRequest.Comment,
        createRequest.ReceivedAt,
    )
    _, err = r.collection.Create(ctx, feedback)

此外,在创建存储库时,我这样做:

// NewFeedbackRepository connects to mongo db and feedback collection.
func NewFeedbackRepository(ctx context.Context, client *mongo.Client) (*FeedbacksRepository, error) {
    r := FeedbacksRepository{
        c:       client.Database(dbName).Collection(feedbackCollectionName),
        metrics: NewMetrics(),
    }
    if err := r.migrate(ctx); err != nil {
        return nil, err
    }
    return &r, nil
}

// migrate ensures presence of dossier collection in database.
func (r *FeedbacksRepository) migrate(ctx context.Context) error {
    mdb := r.c.Database()
    cs, lcErr := mdb.ListCollectionNames(ctx, bson.M{"name": feedbackCollectionName})
    if lcErr != nil {
        return fmt.Errorf("migrate: list collections error: %w", lcErr)
    }
    if len(cs) == 0 {
        if err := mdb.CreateCollection(ctx, feedbackCollectionName); err != nil {
            return fmt.Errorf("migrate: create collection error: %w", err)
        }
    }
    return nil
}

你能告诉我我做错了什么吗?我还没有真正理解如何正确使用 mongo db 中的 _id 字段。我希望它在 mongo 内部创建和处理

write errors
: [E11000 duplicate key error collection: drive.feedback index: _id_ dup key: { _id: ObjectId('000000000000000000000000') }]"

解决方法

如果未传入,MongoDB 将生成 ID。在您的结构中,您传入的 ID 全部为零。

您可以做两件事:

您可以自己生成它:

feedback := model.NewTripFeedback(
        ID: primitive.NewObjectID(),
        createRequest.UserID,

或者,您没有将其传入:

type TripFeedback struct {
    ID        *primitive.ObjectID `json:"_id" bson:"_id,omitempty"`
    UserID    string             `json:"user_id" bson:"user_id"`
    ...

然后,如果不初始化ID,则会生成ID。

以上就是如何正确创建mongo模型和客户端?的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 如何正确创建mongo模型和客户端?

本文链接: https://www.lsjlt.com/news/562307.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何正确创建mongo模型和客户端?
    php小编苹果将为你介绍如何正确创建mongo模型和客户端。在使用MongoDB进行开发时,创建模型和客户端是非常重要的一步,它们决定了你在后续操作中的灵活性和效率。首先,你需要通过安...
    99+
    2024-02-09
  • node.js中ws模块如何创建服务端和客户端
    小编给大家分享一下node.js中ws模块如何创建服务端和客户端,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先下载webso...
    99+
    2024-04-02
  • J2EE如何创建web客户端
    本篇内容主要讲解“J2EE如何创建web客户端”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“J2EE如何创建web客户端”吧!web客户端包含在examples/src/EJB/converte...
    99+
    2023-06-03
  • python创建udp服务端和客户端
    1.udp服务端server 1 from socket import * 2 from time import ctime 3 4 HOST = '' 5 PORT = 8888 6 BUFSIZ = 1024 7 A...
    99+
    2023-01-30
    服务端 客户端 python
  • python创建tcp服务端和客户端
    1.tcp服务端server 1 from socket import * 2 from time import ctime 3 4 HOST = '' 5 PORT = 9999 6 BUFSIZ = 1024 7 A...
    99+
    2023-01-30
    服务端 客户端 python
  • 使用AJAX和J2EE创建瘦客户端
    使用AJAX和J2EE创建瘦客户端[@more@]这篇文章讨论了Iconix Pharmaceuticals公司在开发DrugMatrix 软件应用系统时,Asynchronous JavaScript plus XML (AJAX)所扮演...
    99+
    2023-06-03
  • node.js中express模块如何创建服务器和http模块客户端发请求
    这篇文章将为大家详细讲解有关node.js中express模块如何创建服务器和http模块客户端发请求,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先下载express...
    99+
    2024-04-02
  • 如何从 Golang 客户端创建 ElasticSearch 策略
    问题内容 我正在尝试从 elastic golang 客户端 olivere 创建索引生命周期管理 (ilm) 策略,以删除超过 3 个月的索引(使用“每日索引”模式)。像这样的事情:...
    99+
    2024-02-05
  • EBS客户如何创建
    这篇文章给大家分享的是有关EBS客户如何创建的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。此纳税人登记号已用于同一期间的交易方When updated Supplier'...
    99+
    2024-04-02
  • node.js基于dgram数据报模块如何创建UDP服务器和客户端
    小编给大家分享一下node.js基于dgram数据报模块如何创建UDP服务器和客户端,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!node.js中 dgram 模块提供了udp数据包的so...
    99+
    2024-04-02
  • Java富客户端平台JavaFX如何创建框架
    这期内容当中小编将会给大家带来有关Java富客户端平台JavaFX如何创建框架,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。未来JavaFX希望在渲染方面具备通用的抽象能力,无论是针对Java 2D/Op...
    99+
    2023-06-17
  • nodejs如何模拟客户端请求
    Node.js是一个基于事件驱动的异步I/O的开发框架,具有轻量、高效和可扩展的特点。它可以让JavaScript在服务器端运行,使得开发人员可以用同一种语言来开发前后端应用程序,从而省去了繁琐的语言切换和学习成本。在Node.js中,我们...
    99+
    2023-05-18
  • 如何检查ONNX模型的完整性和正确性
    检查ONNX模型的完整性和正确性通常需要进行以下步骤: 使用ONNX官方提供的工具或者第三方工具对模型文件进行加载和解析,确保模...
    99+
    2024-04-02
  • Java如何创建型模式
    这篇文章主要为大家展示了“Java如何创建型模式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java如何创建型模式”这篇文章吧。创建型模式创建型模式的作用就是创建对象,说到创建一个对象,最熟悉...
    99+
    2023-06-02
  • Golang如何实现 pipeline 模式的 redis 客户端
    这篇文章主要介绍“Golang如何实现 pipeline 模式的 redis 客户端”,在日常操作中,相信很多人在Golang如何实现 pipeline 模式的 redis 客户端问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
    99+
    2023-06-20
  • Android socket实现原理详解 服务端和客户端如何搭建
    本文实例为大家分享了Android socket的实现原理,供大家参考,具体内容如下Socket套接字 是网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。socket实现的原理机制:通信的两端都有Socket...
    99+
    2023-05-30
    android socket roi
  • 如何正确使用PHP DOM-XML创建XML文件
    如何正确使用PHP DOM-XML创建XML文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们在创建XML文件并对其进行解析时,通常都会用到PHP DOM-XML。那么...
    99+
    2023-06-17
  • 如何模拟客户端和服务器之间完全网络丢失?
    在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《如何模拟客户端和服务器之间完全网络丢失?》...
    99+
    2024-04-04
  • Linux下如何安装Deluge和网页客户端
    今天给大家介绍一下Linux下如何安装Deluge和网页客户端。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。 Deluge 是最适合 Linux 用户的 To...
    99+
    2023-06-28
  • Linux中如何创建用户和组
    本篇内容介绍了“Linux中如何创建用户和组”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!用户管理,主要的工作就是建立一个合法的用户帐户、设...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作