В mgo.v2, для выборки данных по одному полю с разными заданными значениями необходимо использовать оператор $in.
Для начала, вам потребуется установить и импортировать пакет mgo.v2 в вашем проекте:
go get gopkg.in/mgo.v2
Импортирование пакета:
import ( "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" )
Предположим, у вас есть коллекция "users" с документами следующего формата:
{ "_id": ObjectId("60e797f4084043c7ef19759a"), "name": "John", "age": 25 }
Теперь, чтобы выбрать данные из этой коллекции по полю "age" с разными значениями, вы можете использовать следующий код:
func main() { // Создание сессии MongoDB session, err := mgo.Dial("mongodb://localhost:27017") if err != nil { panic(err) } defer session.Close() // Подключение к базе данных и коллекции db := session.DB("your_database_name") collection := db.C("users") // Задание разных значений для поля "age" ages := []int{25, 30, 35} // Подготовка запроса с использованием оператора $in query := bson.M{"age": bson.M{"$in": ages}} // Выполнение запроса и получение результатов var results []bson.M err = collection.Find(query).All(&results) if err != nil { panic(err) } // Вывод результатов for _, result := range results { fmt.Println(result) } }
В этом примере мы создаем сессию подключения к серверу MongoDB и подключаемся к определенной базе данных и коллекции "users". Затем мы создаем список возможных значений для поля "age" и составляем запрос с использованием оператора $in.
После этого мы выполняем запрос с использованием метода Find и передаем ему наш запрос. Затем мы сохраняем результаты в слайс bson.M и выводим полученные значения.
Надеюсь, это помогло! Если у вас возникнут еще вопросы, пожалуйста, напишите.