Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Mongo构建过滤接口_C#_Mongodb_Mongodb .net Driver - Fatal编程技术网

C# 使用Mongo构建过滤接口

C# 使用Mongo构建过滤接口,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我现在在和Mongo玩。当我使用新的网络技术时,我做的第一件事就是建立一个简单的电子商务网站,因为我发现它提供了一个关于如何做很多事情的很好的概述 我在数据库中有待售商品,每个商品都有诸如制造商、产品类型(即usb存储、硬盘驱动器、内存、ssd)、容量(gb)等字段 该网站有能力进行搜索,并将返回所有产品。我想在侧栏中构建一个过滤器,列出搜索返回的所有制造商、产能、产品类型等,以及项目计数。因此,例如,如果硬盘驱动器是应用的过滤器,那么侧栏中的usb存储、内存和ssd将从产品类型中删除 我希望这

我现在在和Mongo玩。当我使用新的网络技术时,我做的第一件事就是建立一个简单的电子商务网站,因为我发现它提供了一个关于如何做很多事情的很好的概述

我在数据库中有待售商品,每个商品都有诸如制造商、产品类型(即usb存储、硬盘驱动器、内存、ssd)、容量(gb)等字段

该网站有能力进行搜索,并将返回所有产品。我想在侧栏中构建一个过滤器,列出搜索返回的所有制造商、产能、产品类型等,以及项目计数。因此,例如,如果硬盘驱动器是应用的过滤器,那么侧栏中的usb存储、内存和ssd将从产品类型中删除

我希望这将是一个独特的搜索文档上的数字随着各自的计数


TLDR:当我从Mongo获得一个查询结果集时,最有效的方法是什么来获得不同字段的不同列表以进行筛选,以及这些字段值应用于结果集中的项数。

您在这里描述的称为“分面搜索”,您可能会发现各种专门的“文本搜索”产品已经有了,而且可能更适合您的目的。有关使用MongoDB构建“方面列表”的一种方法,请参阅。或者更深入地说@BlakesSeven,这几乎是一个答案;就这样写吧。@BuzzMoschetti我并没有把它作为“答案”来写,因为有各种各样的例子,比如人们说使用Elasticsearch或Solr,以及一些在链接答案和博客帖子中解释的方法变体。@BlakesSeven我认为你说的是正确的。我不知道这个术语叫做刻面。我打算使用ElasticSearch,我想在阅读了你的文章之后,我需要做更多的研究。请继续发帖,我会把它标记为答案。