Mongodb Mgo拉更新不工作

Mongodb Mgo拉更新不工作,mongodb,go,mgo,Mongodb,Go,Mgo,我正在尝试从Go使用mgo库实现以下功能: db.artists.update( {_id: ObjectId("534944125117082b30000001")}, { $pull: { studies: { _id: ObjectId("53d53591718a522e04000001") } } }) 这基本上是对美术家收藏的一个更新,我正在尝试从研究数组中删除一

我正在尝试从Go使用mgo库实现以下功能:

db.artists.update(
    {_id: ObjectId("534944125117082b30000001")}, 
    {
        $pull: {
            studies: {
                _id: ObjectId("53d53591718a522e04000001")
            }
    }
})
这基本上是对美术家收藏的一个更新,我正在尝试从研究数组中删除一个研究,基于它的id字段

因此,在go中,我使用:

pullQuery := &bson.M{"studies": &bson.M{"_id": bson.ObjectIdHex("53d53fd6718a521954000001")}}
err = col.Update(&bson.M{"_id": "534944125117082b30000001"}, &bson.M{"$pull": pullQuery})
但这似乎不起作用。如果我直接在RoboMongo(mongodb客户端实用程序)中运行第一个版本,它运行得很好,但在mgo中,它似乎不起作用。它给了我一个错误:“找不到”

多谢各位

编辑

以下go代码已修改,并且仅在文件中工作:

err = col.UpdateId(bson.ObjectIdHex("534944125117082b30000001"), &bson.M{"$pull": pullQuery})

第一个
$pull
示例中的
ObjectId
与go代码不匹配。您确定使用的是正确的
\u id
s吗?

第一个
$pull
示例中的
ObjectId
与go代码不匹配。您确定使用的是正确的
\u id
s吗?

第一个
$pull
示例中的
ObjectId
与go代码不匹配。您确定使用的是正确的
\u id
s吗?

第一个
$pull
示例中的
ObjectId
与go代码不匹配。你确定你使用的是正确的
\u id
s吗?

哦,我讨厌发生这种事情。是的,我在查询文档时忘记使用bson.objectedhex函数。非常感谢。哦,我讨厌这种事情发生的时候。是的,我在查询文档时忘记使用bson.objectedhex函数。非常感谢。哦,我讨厌这种事情发生的时候。是的,我在查询文档时忘记使用bson.objectedhex函数。非常感谢。哦,我讨厌这种事情发生的时候。是的,我在查询文档时忘记使用bson.objectedhex函数。非常感谢。