猿问

如何在 mgo 中使用 $pushAll

我像这个结构一样存储


type Test struct {

    Key string

    Tags []string

}

在 mongodb 中,然后我想更新标签添加一些其他标签,我找到了$pushAll,但我不知道如何使用它。


我试试


mongoDb.C("test").Update(

    bson.M{"key": key},

    bson.M{"$set": bson.M{"tags": bson.M{"$pushAll": tags}}}

)

但这是错误。


千巷猫影
浏览 230回答 1
1回答

至尊宝的传说

运营商如$set和$push,甚至$pushAll定义语句的“更新”部分的操作。这些是“顶级”运算符,因此您可以在更新语句的“根”级别定义它们,并使用要操作的字段作为其子项:mongoDb.C("test").Update(    bson.M{"key": key},     bson.M{"$pushAll": bson.M{"tags": tags}})从 MongoDB 2.6 开始,虽然该$pushAll运算符被认为已弃用。该功能已与$each修饰符合并,它也适用于$addToSet:mongoDb.C("test").Update(    bson.M{"key": key},     bson.M{"$push": bson.M{"tags": bsonM.{"$each": tags} }})该运算符可用于$pushMongoDB 2.4,其中最新版本的不同之处在于省略$slice了早期版本也需要的修饰符。除非您需要支持旧版本,否则通常建议使用$each修饰符来代替将来的兼容性。
随时随地看视频慕课网APP

相关分类

Go
我要回答