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

我有以下 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中的方法,但它不起作用:go


myCollection.UpdateOne(context.TODO(),

    bson.M{"name": "two", "values.propery": "a3"},

    bson.D{bson.E{Key: "$pull", Value: "values.$"}},

)


墨色风雨
浏览 71回答 1
1回答

慕哥9229398

壳: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,    )
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go