我有一个集合X ,我必须在其上应用过滤器。
过滤器保存为sepparate实体(集合过滤器),其唯一的数据是字段名称和条件已应用到该字段名称
过滤器示例:
名字是Stephan和年龄10,20岁
基本上我需要改进的是,我的过滤器中的每个字段都是在创建过滤器时添加的索引。
匹配的唯一结构是已过滤字段的复合索引。
总之,问题在于我有一个像:
这样的过滤器名字是斯蒂芬和年龄10,20
我在MongoDb中的复合索引将是:{'姓名':1,'年龄':1}
但是,如果我添加另一个过滤器,让我们说:年龄是10,名字是阿德里安和高度在170,180之间
复合指数为:{'年龄':1,'姓名':1,'身高':1}
{'姓名':1,'年龄':1}<> {'年龄':1,'姓名':1,'身高':1}
我可以做些什么来使最后一个索引适合第一个和另一个方式。
如果我没有明确表示,请告诉我。
答案 0 :(得分:1)
此问题最干净的解决方案是index intersections,目前正在开发中。这样,每个标准的索引就足够了。
与此同时,我看到两个选择:
$in
查询实际文档。有许多工具使用这种方法,但它增加了相当多的开销,因为您需要编写代码并管理第二个数据库,保持数据同步等。这可能不是最干净的方法,其效率在很大程度上取决于查询的细节,因此可能需要进行一些微调。