For the query and indexes below, the planner considers index intersection (AND_SORTED / AND_HASH). What property of the predicates makes intersection viable here but useless if one predicate were a range instead of equality?
db.events.find({ userId: 42, type: "click" })
// two indexes exist:
// { userId: 1 }
// { type: 1 }
// no compound { userId: 1, type: 1 }