Not sure how I feel about the `merge!` part but you could do this:

```ruby
SPECIAL_FIELDS = [
      [:$query,          selector],
      [:$readPreference, read_pref],
      [:$orderby,        sort],
      [:$hint,           hint],
      [:$comment,        comment],
      [:$snapshot,       snapshot],
      [:$maxScan,        max_scan],
      [:$showDiskLoc,    show_disk_loc]
]

def special selector
  SPECIAL_FIELDS.reduce({}) do |hash, pair|
    key, value = pair
    hash.merge!({key => value}) if value
  end
end
```