登录
首页 >  Golang >  Go问答

更新文档网中的数组字段的方法

来源:stackoverflow

时间:2024-02-26 12:12:16 145浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《更新文档网中的数组字段的方法》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

我有一个具有以下结构的文档。我想在数组 files 中插入一个新文件,然后将所有其他文件状态设置为“inactive”。插入后,我尝试按照代码更新数组的其他文件,但它无法匹配。

{
  {
 "id":"fafsahjaf867rwhrbjw",
 "files" : [
            {"name": "123", status:"active"},
            {"name": "124", status:"active"},
            {"name": "125", status:"active"},
            {"name": "126", status:"active"},
           ] 
   },
}
query = bson.M{ "id": productId,
    "files": bson.M{
        "$not": bson.M{"$elemMatch": fileObj}}}

    update = bson.M{
    "$set": bson.M{
        "files.$.status": "INACTIVE",
    },
  }

解决方案


如果您的 mongo >= 3.6,这里是一个编辑除最后一个名称 126 之外的所有版本的示例。

db.collection.update(
  { "id" : "fafsahjaf867rwhrbjw", "files.name": "126" },
  { "$set": { "files.$[elem].status": "INACTIVE" } },
  { "arrayFilters": [{ "elem.name": {$ne : "126"} }], "multi": true }
)

How to Update Multiple Array Elements in mongodb 获取该解决方案

好了,本文到此结束,带大家了解了《更新文档网中的数组字段的方法》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>