可以使用MongoDB的aggregate函数来实现$ or和$ and组合的查询,代码如下:

// 创建一个查询条件

var query = bson.M{

    "$or": []bson.M{

        bson.M{"field1": "value1"},

        bson.M{"field2": "value2"},

    },

    "$and": []bson.M{

        bson.M{"field3": "value3"},

        bson.M{"field4": "value4"},

    },

}

// 执行查询

err := collection.Find(query).All(&result)

if err != nil {

    // 处理错误

}