gpt4 book ai didi

mongodb - 如何在mgo框架中使用mongodb 3.6的数组过滤器?

转载 作者:行者123 更新时间:2023-12-03 03:44:37 25 4
gpt4 key购买 nike

嗨,我遇到了一种情况,我必须使用 Go 的 mgo 框架更新 mongodb 集合中嵌套数组中的对象。截至目前,mongodb 3.6 版本支持使用 ArrayFilters 作为 Collection.Update() 中的第三个参数。mgo Collection.Update() 函数仅支持 2 个参数,一个用于查找,另一个用于更新。我如何在 mgo 的 Collection.Update() 中使用 arrayfilters

这是我的对象看起来像

{
"TPID": "",
"TPName":"",
"TCID":"",
"TCName":"",
"BatchId":"",
"BatchName":"",
"QP":[{
"qpCode":"",
"jobRole":"",
"Sector":"",
"SectorID":"",

"CompulsoryNos":[{
"NosCode":"",
"TotalMarks":"",
"OutOf":"",
"Theory":"",
"SkillsPracticals":"",

"PerformanceCriteria":[{
"CriteriaDesc":"",
"OutOf":"",
"Theory":"",
"Skills":""
}]
}]

}]


}

这是我在 mongo shell(版本 3.6)中的方法

db.test4.update({},
{"$set" :
{"QP.$[i].CompulsoryNos.$[j].PerformanceCriteria.$[k].Skills" :
"Talented"}},
{"arrayFilters" : [{"i.qpCode" : "ID_1"},{"j.NosCode" : "Code_1"},
{"k.Skills" : "skills_1"}]})

有没有办法使用 mgo 实现相同的查询?

最佳答案

https://github.com/laoluan/mgo
我修改了mgo版本

_ = session.DB("youdbname").C("test4").UpdateUseAf(
bson.M{},
bson.M{"$set": bson.M{"QP.$[i].CompulsoryNos.$[j].PerformanceCriteria.$[k].Skills": "Talented"}},
[]bson.M{
{"i.qpCode" : "ID_1"},
{"j.NosCode" : "Code_1"},
{"k.Skills" : "skills_1"},
},
)

关于mongodb - 如何在mgo框架中使用mongodb 3.6的数组过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50715657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com