private static async Task QueryDb() { Console.WriteLine("Running MangoQuery against the db"); var query = new MangoQuery() { FilteringFields = new List <string>() { "LastName", "Role" }, Selector = new MangoSelector() { Operations = new List <MangoSelectorOperator>() { new MangoSelectorOperator("$or") { OperatorValues = new List <MangoSelectorOperator>() { new MangoSelectorOperator("LastName") { SimpleOperatorValue = "Muehle" }, new MangoSelectorOperator("LastName") { SimpleOperatorValue = "NotFound" } } } } }, IncludeExecutionStats = true }; await RunQuery(query); Console.WriteLine("Generating index for above query"); var indexResult = await client.CreateMangoIndexAsync(new MangoIndex() { DesignDocument = "index_collection", Name = "example_index_lastname", Index = new MangoIndexFields() { Fields = new List <string>() { "LastName" } }, }, "pillow"); Console.WriteLine($"Index result: {indexResult.Result}"); query.UseIndex = new List <string>() { "index_collection" }; Console.WriteLine($"Running query again"); await RunQuery(query); }
private static async Task RunQuery(MangoQuery query) { var queryResult = await client.RunMangoQueryAsync <QueryPerson>(query, "pillow"); Console.WriteLine("Query results:"); Console.WriteLine($"Total docs: {queryResult.Docs.Count}"); Console.WriteLine($"Warning: {queryResult.Warning}"); Console.WriteLine($"ExecutionTimeMs: {queryResult.ExecutionStats?.ExecutionTimeMs}"); foreach (var item in queryResult.Docs) { Console.WriteLine(item.ToString()); } }