MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

mongo-go-driver:filtro query OR/AND annidato

Ciò che conta è che $or richiede un array, che è bson.A . Anche $and è l'impostazione predefinita, non è necessario indicarlo.

Il tuo filtro può essere definito in questo modo:

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

Puoi anche usare questo:

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

O questo:

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