public List <Recipe> GetByOr(FilterValue[] filters)
        {
            var filterDefinitions = new List <FilterDefinition <Recipe> >();

            for (int i = 0; i < filters.Length; i++)
            {
                switch (filters[i].FilterType)
                {
                case FilterType.IN:
                    filterDefinitions.Add(MongoDatabase.FilterDefinitionIn <Recipe>(filters[i].ColumnName, filters[i].Values));
                    break;

                case FilterType.EQUAL:
                    filterDefinitions.Add(MongoDatabase.FilterDefinitionEqual <Recipe>(filters[i].ColumnName, filters[i].Values.ElementAt(0)));
                    break;

                case FilterType.LIKE:
                    filterDefinitions.AddRange(MongoDatabase.FilterDefinitionLike <Recipe>(filters[i].ColumnName, filters[i].Values));
                    break;

                case FilterType.RANGE:
                    filterDefinitions.Add(MongoDatabase.FilterDefinitionRange <Recipe, string>(filters[i].ColumnName, filters[i].Values.ElementAt(0), filters[i].Values.ElementAt(1)));
                    break;

                case FilterType.LESS_THAN_EQUAL:
                    filterDefinitions.Add(MongoDatabase.FilterDefinitionLessThanOrEqual <Recipe>(filters[i].ColumnName, filters[i].Values.ElementAt(0)));
                    break;

                case FilterType.GREATER_THAN_EQUAL:
                    filterDefinitions.Add(MongoDatabase.FilterDefinitionGreaterThanOrEqual <Recipe>(filters[i].ColumnName, filters[i].Values.ElementAt(0)));
                    break;
                }
            }

            var recs = _db.LoadRecordsOr(CollectionMappings.RecipeCollectionName, filterDefinitions.ToArray());

            return(recs.ToList());
        }