Как в mgo.v2 выбрать данные по одному полю но с разными заданными значениями?

В 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 и выводим полученные значения.

Надеюсь, это помогло! Если у вас возникнут еще вопросы, пожалуйста, напишите.