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

如何在 mgo 中使用 $pushAll

如何在 mgo 中使用 $pushAll

Go
千巷猫影 2021-08-10 15:00:19
我像这个结构一样存储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}}})但这是错误。
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

运营商如$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修饰符来代替将来的兼容性。



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

添加回答

举报

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