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},
},
}