为了账号安全,请及时绑定邮箱和手机立即绑定

从具有内部和外部条件的数组中提取对象

从具有内部和外部条件的数组中提取对象

Go
墨色风雨 2022-08-24 10:49:04
我有以下 mongodb 集合 ():myCollection[   {      "_id":"1",      "name":"one",      "values":[         {            "property":"a9",            "value":8         },         {            "property":"a2",            "value":8         }      ]   },   {      "_id":"2",      "name=":"two",      "values":[         {            "property":"a1",            "value":9         },         {            "property":"a3",            "value":9         }      ]   },   {      "_id":"4",      "name":"four",      "values":[         {            "property":"a4",            "value":4         }      ]   }]我想从数组中删除()带有和的对象。$pullvaluesvalues.property = a3name = two因此,对象应从 = 2 的数组中删除。{"property":"a3", "value":9}values_id这是我在lang中的方法,但它不起作用:gomyCollection.UpdateOne(context.TODO(),    bson.M{"name": "two", "values.propery": "a3"},    bson.D{bson.E{Key: "$pull", Value: "values.$"}},)
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

壳:


db.collection.update(

{

  "name": "two",

  "values.property": "a3",

},

{

  $pull: {

    "values": {

      "property": "a3",

    },

  },

})

去:


    filter := map[string]interface{}{

        "name":            "two",

        "values.property": "a3",

    }


    update := map[string]interface{}{

        "$pull": map[string]interface{}{

            "values": map[string]interface{}{

                "property": "a3",

            },

        },

    }


    myCollection.UpdateOne(

        context.TODO(),

        filter,

        update,

    )


查看完整回答
反对 回复 2022-08-24
  • 1 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信