题目描述
mongo-go-driver
如何操作ArrayFilters
实现mongodb两层嵌套数组的修改?
题目来源及自己的思路
手写查询是这样的
db.demo.update(
{},
{
$inc: {
"panels.$[t].condition.$[val].valueSource": 100001
}
},
{
arrayFilters: [{
"t.id": 10000
}, {
"val.valueConnection": "changed"
}],
multi: true
});
mgo
没找到ArrayFilters
相关字段,mongo-go-driver
有相关的字段,但是Filters
需要传入一个[]interface
,请问Filters
应该怎么填?代码如下
res, err := c.UpdateMany(
ctx,
bson.M{},
bson.M{"$inc": bson.M{"content.regs.$[reg].conf.$[con].name": 100001}},
&options.UpdateOptions{ArrayFilters: &options.ArrayFilters{
Registry: bson.DefaultRegistry,
Filters: 这里怎么填?,
}})
我魔改了一下,可以用了 https://github.com/laoluan/mgo