Mgo拉动更新无法正常工作

时间:2014-07-27 18:12:34

标签: mongodb go mgo

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

db.artists.update(
    {_id: ObjectId("534944125117082b30000001")}, 
    {
        $pull: {
            studies: {
                _id: ObjectId("53d53591718a522e04000001")
            }
    }
})

这基本上是艺术家系列的更新,我试图从研究数组中删除一个基于它的id字段的研究。

所以我去使用:

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})

1 个答案:

答案 0 :(得分:3)

您的第一个ObjectId示例中的$pull与go代码不匹配。您确定使用了正确的_id s?