返回顶部
首页 > 资讯 > 精选 >更新 mongdbo 文档中的数组
  • 344
分享到

更新 mongdbo 文档中的数组

2024-02-09 14:02:51 344人浏览 泡泡鱼
摘要

PHP小编鱼仔在本文中将向大家介绍如何在mongoDB的文档中更新数组。MonGoDB是一种非关系型数据库,它的文档结构非常灵活,可以包含各种类型的数据,包括数组。在实际的开发中,我们

PHP小编鱼仔在本文中将向大家介绍如何在mongoDB的文档中更新数组。MonGoDB是一种非关系型数据库,它的文档结构非常灵活,可以包含各种类型的数据,包括数组。在实际的开发中,我们经常需要对存储在数组中的数据进行更新操作。本文将详细讲解如何使用MongoDB的更新操作符来更新文档中的数组,以及一些常见的使用场景和注意事项。无论你是刚刚接触MongoDB还是已经有一定经验的开发者,都能从本文中获得有益的知识和实践经验。

问题内容

我正在尝试更新 mongo 文档中的数组项。

event 是文档,我通过事件 id 找到它,然后我需要通过识别任务名称来识别任务数组中的哪个对象需要更改。

知道我哪里出错了

事件结构

type event struct {
eventid              string       `JSON:"eventid" bson:"eventid"`
eventowner           string       `json:"eventowner" bson:"eventowner"`
eventtitle           string       `json:"eventtitle" bson:"eventtitle"`
eventdatetime        string       `json:"eventdatetime" bson:"eventdatetime"`
eventlocation        eventaddress `json:"eventlocation" bson:"eventlocation"`
eventtotalticket     int          `json:"eventtotalticket" bson:"eventtotalticket"`
eventavailableticket int          `json:"eventavailableticket" bson:"eventavailableticket"`
eventcoverimage      string       `json:"eventcoverimage" bson:"eventcoverimage"`
eventdescription     string       `json:"eventdescription" bson:"eventdescription"`
lat                  string       `json:"lat" bson:"lat"`
long                 string       `json:"long" bson:"long"`
task                 []task       `json:"task" bson:"task"`
}

任务结构:

type task struct {
tasktitle    string  `json:"tasktitle" bson:"tasktitle"`
initalbudget float32 `json:"initialbudget" bson:"initialbudget"`
supplier     string  `json:"suppid" bson:"suppid"`
agreedprice  float32 `json:"agreedprice" bson:"agreedprice"`
iscomplete   bool    `json:"iscomplete" bson:"iscomplete"`
}

这就是我想做的

func (e *EventServiceImpl) UpdateTask(eventid *string, task *models.Task) error {

    //filter := bson.D{bson.E{Key: "eventid", Value: eventid}, bson.E{Key: "tasktitle", Value: task.TaskTitle}}
    filter := bson.M{"$and": []bson.M{{"eventid": eventid}, {"task": bson.E{Key: "tasktitle", Value: task.TaskTitle}}}}
    update := bson.D{bson.E{Key: "$set", Value: bson.D{bson.E{Key: "task", Value: bson.M{"tasktitle": task.TaskTitle, "initialbudget": task.InitalBudget, "suppid": task.Supplier, "agreedprice": task.AgreedPrice, "iscomplete": task.IsComplete}}}}}
    result, _ := e.eventcollection.UpdateOne(e.ctx, filter, update)
    if result.MatchedCount != 1 {
        return errors.New("No matched document found to update")
    }
    return nil

}

我总是收到“找不到要更新的匹配文档”

解决方法

这是解决方案

func (e *EventServiceImpl) UpdateTask(eventid *string, task *models.Task) error {
    filter := bson.M{"eventid": eventid, "task": bson.M{"$elemMatch": bson.M{"tasktitle": task.TaskTitle}}}
    update := bson.M{"$set": bson.M{"task.$.initialbudget": task.InitalBudget, "task.$.suppid": task.Supplier, "task.$.agreedprice": task.AgreedPrice, "task.$.iscomplete": task.IsComplete}}
    result, err := e.eventcollection.UpdateOne(e.ctx, filter, update)
    if err != nil {
        return err
    }
    if result.MatchedCount != 1 {
        return errors.New("No matched document found to update")
    }
    return nil
}

以上就是更新 mongdbo 文档中的数组的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 更新 mongdbo 文档中的数组

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

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

猜你喜欢
  • 更新 mongdbo 文档中的数组
    php小编鱼仔在本文中将向大家介绍如何在MongoDB的文档中更新数组。MongoDB是一种非关系型数据库,它的文档结构非常灵活,可以包含各种类型的数据,包括数组。在实际的开发中,我们...
    99+
    2024-02-09
  • 如何使用内部数组中的值更新文档
    php小编香蕉为你带来了一篇关于如何使用内部数组中的值更新文档的实用指南。在开发过程中,我们经常需要从一个数组中获取数据并将其更新到文档中。本文将介绍使用PHP的内部数组中的值来更新文...
    99+
    2024-02-10
  • 更新文档(update)
    修改一条简单文档:db.getCollection("test").insert(     {         title: "商品购物单1",         amount: 35,         de...
    99+
    2024-04-02
  • MongoDB(五):更新文档、删除文档
    1. 更新文档 MongoDB的uptade()和save()方法用于将集合中的文档更新。update()方法更新现有文档中的值,而save()方法是传递文档数据替换现有文档。从3.2版本开始,MongoDB提供以下更新集合文档的方法: ...
    99+
    2020-10-28
    MongoDB(五):更新文档 删除文档
  • 如何更新 Golang 函数文档?
    如何更新 go 函数文档?更新 go 函数文档字符串涉及以下步骤:在函数声明前添加文档字符串,以三个双引号开头和结尾。分隔文档字符串和函数声明,用一对空行。描述函数用途,第一行为简短描述...
    99+
    2024-05-06
    golang 函数文档
  • MongoDB文档更新(一)
        MongoDB文档更新:1.可以是采用删除原文档然后插入一个更新后的新文档到数据库中;2.基于原文档使用修改器修改原文档中的文档属性。     下面主要说明...
    99+
    2024-04-02
  • MongoDB如何更新多级文档的数据
    目录嵌套数组更新更新下级文档的属性属性增加和移除总结嵌套数组更新 以下面的数据(数据集名称为author)为例: {name: '岛上码农', documents: ['Flu...
    99+
    2024-04-02
  • 如何更新 MongoDB 文档的 _id?
    您无法更新它,但可以保存新 ID 并删除旧 ID。请按照一些步骤更新 MongoDB 的 _id。步骤如下:第1步:第一步,需要将ObjectId存储到变量中。anyVariableName=db.yourCollectionName.fi...
    99+
    2023-10-22
  • MongoDB中怎么实现文档更新操作
    MongoDB中怎么实现文档更新操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。文档替换假设我的集合中现在存了如下一段数据:{  ...
    99+
    2024-04-02
  • Facebook 游戏开发更新文档 API 参考文档 v5.0
    Facebook 游戏开发更新文档API 参考文档 v5.0 更新日志 广告 API 两款全新的 API 可方便投放插屏广告和奖励式视频广告。要求 配置游戏以便在小游戏中投放广告。 Player St...
    99+
    2023-06-05
  • MongoDB中怎么使用Save()方法更新文档
    这篇文章将为大家详细讲解有关MongoDB中怎么使用Save()方法更新文档,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在MongoDB中,可以对操作的文档进行操作,例如如何在数据库中存在了该内容,这部...
    99+
    2023-06-14
  • 怎么在MongoDB中使用update()方法更新文档
    怎么在MongoDB中使用update()方法更新文档?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、update()命令db.collection.update(&nb...
    99+
    2023-06-14
  • 如何在Python中实现数组文件的实时更新?
    在Python中,实现数组文件的实时更新是非常常见的需求。在本文中,我们将介绍如何使用Python中的一些常见工具和技巧来实现这个功能。 数组文件的实时更新通常用于一些需要实时监控数据变化的应用场景,例如股票市场、气象预报和实时传感器数据等...
    99+
    2023-07-06
    实时 数组 文件
  • 03.Mongodb创建、更新和删除文档。
      插入:>db.collectionName.insert({"bar":"baz")} 批量插入:如果要向集合插入多个文档,使用批量插入会快一些。batchInsert函数实现...
    99+
    2024-04-02
  • mongodb怎么批量更新多个文档
    在MongoDB中,可以使用updateMany()方法来批量更新多个文档。该方法可以接受一个查询条件和一个更新操作作为参数,然后将...
    99+
    2024-04-09
    mongodb
  • MongoDB对Document(文档)的插入、删除及更新
    一.Document数据插入 1.插入文档 db.[文档名].insert({BSON数据}) 2.批量插入文档 shell当中不支持批量插入,想完成批量插入操作,可以使用shell的for循环,或者其他高级语言当中的批...
    99+
    2022-07-08
    MongoDB Document 文档插入 文档删除 文档更新
  • mongodb 更新嵌套数组的值
    概要 本文主要讲述在 mongodb 中,怎么更新嵌套数组的值。  使用$更新数组 基本语法  { ".$" : value }  可以用于:update, findAndUpdate 等方法 $是一个占位符一样的存在。代表被...
    99+
    2018-11-01
    mongodb 更新嵌套数组的值
  • MongoDB入门3——更新文档和修改器1
        我们前面讲MongoDB的CRUD操作讲过:MongoDB的更新操作通过集合的update()函数实现。这个函数有两个参数:要更改的文档和更改后的样子。要更新文档有两种...
    99+
    2024-04-02
  • gitee怎么更新一个文档(步骤浅析)
    Gitee是一个流行的代码托管平台,也是国内首个支持Git的基于云计算的软件开发平台。它提供了许多功能,包括代码管理、文档管理、项目管理等等。在使用Gitee管理文档时,我们需要知道如何更新一个文档。下面我们将详细介绍如何在Gitee上更新...
    99+
    2023-10-22
  • 如何使用 MongoDB 获取数组中包含另一个文档的所有文档?
    为此,只需在 MongoDB 中使用点表示法和 find() 即可。让我们创建一个包含文档的集合 -> db.demo465.insertOne( ... { ... id: 101, ... details: [{ .....
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作