示例#1
0
        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);
        }
示例#2
0
        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());
            }
        }