MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongo-go-driver :filtre de requête OR/AND imbriqué

Ce qui compte, c'est que $or nécessite un tableau, qui est bson.A . Aussi $and est la valeur par défaut, vous n'avez pas à l'indiquer.

Votre filtre peut être défini comme ceci :

filter := bson.D{
    {"p", 10},
    {"$or", bson.A{
        bson.D{{"s", 30}},
        bson.D{{"a", 10}},
    }},
}

Vous pouvez également utiliser ceci :

filter = bson.D{
    {"p", 10},
    {"$or", bson.A{
        bson.M{"s": 30},
        bson.M{"a": 10},
    }},
}

Ou ceci :

filter := bson.M{
    "p": 10,
    "$or": bson.A{
        bson.M{"s": 30},
        bson.M{"a": 10},
    },
}