MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

mongo-go-driver:filtro de consulta OR/AND aninhado


O que importa é que $or requer uma matriz, que é bson.A . Também $and é o padrão, você não precisa indicar isso.

Seu filtro pode ser definido assim:
filter := bson.D{
    {"p", 10},
    {"$or", bson.A{
        bson.D{{"s", 30}},
        bson.D{{"a", 10}},
    }},
}

Você também pode usar isso:
filter = bson.D{
    {"p", 10},
    {"$or", bson.A{
        bson.M{"s": 30},
        bson.M{"a": 10},
    }},
}

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