Я подумал, что вопрос довольно ясен, не уверен, действительно ли первый комментатор действительно внимательно прочитал утверждение.
Что этот человек просил, чтобы динамически вставлять данные в виде списка данных в конвейер.
У меня была та же проблема с приложением vue, над которым работала моя команда.Используя предоставленные вами данные, вот общий шаблон:
Учитывая кусочек океанов
a := []string{"Pacific Ocean", "Indian Ocean"}
Создайте кусочек размером 0 типа * bson.Value
b := make([]*bson.Value, 0)
Переберите срез океана и добавьте преобразованные значения bson к срезу b
for _, v := range a {
b = append(b, bson.VC.String(v))
}
Затем создайте пару ключ-значение, чтобы монго могло искать совпадения
c := bson.EC.ArrayFromElements("$in", b...)
Затемпередать c в конвейер
pipeline := bson.NewArray(
bson.VC.DocumentFromElements(
bson.EC.SubDocumentFromElements(
"$match",
bson.EC.SubDocumentFromElements("ocean", c),
),
),
)
Это должно дать вам представление о том, как динамически конвейер для callTypeNames