Как использовать фильтры массива mongodb 3.6 в mgo framework? - PullRequest
0 голосов
/ 06 июня 2018

Привет, у меня есть ситуация, когда мне нужно обновить объекты во вложенном массиве в коллекции mongodb, используя инфраструктуру mgo из Go.На данный момент mongodb версии 3.6 поддерживает это, используя ArrayFilters в качестве третьего параметра в Collection.Update (). Функция mgo Collection.Update () поддерживает только 2 параметра: один для поиска, а другой для обновления.Как я могу использовать arrayfilters в Collection.Update () mgo

Это мой объект выглядит как

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

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

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

  }]


}

, и это был мой подход в оболочке Монго (версия 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?

...