MongoDB通过许多参数过滤(复合索引与否)
-
29-10-2019 - |
题
我有产品目录,我想通过许多参数对其进行过滤: 类别,价格,大小,颜色,范围等。
所以问题在于索引。
我可以尝试在所有字段上使用复合索引,并以与为其建立索引的顺序查询它们。但是,如果我只需要按尺寸和颜色过滤,然后仅按价格和重量过滤怎么办?为每个可能的过滤查询创建复合索引可能会过大,因为参数可能过多。
因此,在进行了一些搜索之后,我发现了有趣的方法
解决方案
(有效地)在商店目录中搜索确实是一项艰巨的任务。
是的,您可以创建其他集合并将所有值存储在那里 通用标签
否,您不需要每次都重新查询此集合。这里的数据大小可能很小,因此您可以在应用程序过程中将其缓存。不要忘记提示:始终将基数最低的属性放在首位。
另一种方法是使用位掩码,但是由于MongoDB具有有限的整数长度,因此无法获得无限数量的属性。
不隶属于 StackOverflow