public InSubquery(string name, IEnumerable <string> values)
 {
     if (values == null || !values.Any())
     {
         throw new Exception("IN query must have at least one value");
     }
     this[name] = new SearchExpression <IReadOnlyList <string> > {
         { "$in", new List <string>(values).AsReadOnly() }
     };
 }
 public LteSubquery(string name, string value)
 {
     this[$"~{name}"] = new SearchExpression <string> {
         { "$lte", value }
     };
 }
 public LikeSubquery(string name, string value)
 {
     this[name] = new SearchExpression <string> {
         { "$like", value }
     };
 }
 public NotEqSubquery(string name, string value)
 {
     this[name] = new SearchExpression <string> {
         { "$neq", value }
     };
 }