Firestore多个复合索引

时间:2017-12-12 19:17:01

标签: javascript firebase google-cloud-firestore

我有一个可以根据多个字段进行过滤的过滤器组件。所有字段都使用相等运算符,我根据“已创建”字段进行排序。

的内容
let queryBuilder = firebase.firestore()
    .collection('myCollection')
    .doc(docId)
    .collection('myInnerCollection')
    .orderBy('created', 'desc');

const {field1, field2, field3} = filter;
if (field1) {
    queryBuilder = queryBuilder.where('field1', '==', field1);
}
if (field2) {
    queryBuilder = queryBuilder.where('field2', '==', field2);
}
if (field3) {
    queryBuilder = queryBuilder.where('field3', '==', field3);
}

对于每个字段,我都需要使用“created”字段创建复合索引。即:

index field1(+) created(-)  
index field2(+) created(-)  
index field3(+) created(-)  

一旦我这样做,每种过滤组合都有效。所以我的问题是,如果我知道field1总是填充,我应该只创建两个复合索引:

index field1(+) field2(+) created(-)  
index field1(+) field3(+) created(-)  

或者3个索引也可以吗? 使用每一个是否有任何性能/存储损失?如果是这样,惩罚是什么(假设我的收藏中有100K记录)?

0 个答案:

没有答案