我像这个结构一样存储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修饰符来代替将来的兼容性。
- 1 回答
- 0 关注
- 229 浏览
添加回答
举报
0/150
提交
取消