Database

[{firstName:"Alan",lastName:"Smith",university:"KNTU",},{firstName:"Alan",lastName:"Alderson",university:"ZNU",},]

Query

db.collection.find({$or:[{$and:[{firstName:{$regex:"Alan",$options:"i"}},{lastName:{$regex:"Smith",$options:"i"}}]},{$and:[{firstName:{$regex:"Smith",$options:"i"}},{lastName:{$regex:"Alan",$options:"i"}}]}]})

Result