docs: def not_(self):
          ''' Negates this instance's query expression using MongoDB's ``$not``
              operator
  
              **Example**: ``(User.name == 'Jeff').not_()``
  
              .. note:: Another usage is via an operator, but parens are needed
                  to get past precedence issues: ``~ (User.name == 'Jeff')``
              '''
          ret_obj = {}
          for k, v in self.obj.items():
              if not isinstance(v, dict):
                  ret_obj[k] = {'$ne' : v }
                  continue
              num_ops = len([x for x in v if x[0] == '$'])
              if num_ops != len(v) and num_ops != 0:
                  raise BadQueryException('$ operator used in field name')
  
              if num_ops == 0:
                  ret_obj[k] = {'$ne' : v }
                  continue
  
              for op, value in v.items():
                  k_dict = ret_obj.setdefault(k, {})
                  not_dict = k_dict.setdefault('$not', {})
                  not_dict[op] = value
  
  
          return QueryExpression(ret_obj)