您能告诉我如何在Firestore上进行不区分大小写的查询?
例如 Hallway
和hallway
两者必须相同。但下面的查询确实搜索。即如果db有Hallway
且我尝试搜索hallway
,则会显示no records
。
getSpecificTempBudgetGroup(name: string): AngularFirestoreCollection<BudgetGroup> {
return this.fireStore.collection<BudgetGroup>(`members/${this.authenticationProvider.member.id}/budgetGroups`, ref => ref
.where('name', '==', name)
);
}
我也试过了toLowerCase()
。但没有运气:(任何线索?
getSpecificTempBudgetGroup(name: string): AngularFirestoreCollection<BudgetGroup> {
return this.fireStore.collection<BudgetGroup>(`members/${this.authenticationProvider.member.id}/budgetGroups`, ref => ref
.where('name.toLowerCase()', '==', name.toLowerCase())
);
}
注意:我也看到了可能的重复答案。但它并没有给我的用例提供那么多的想法。但是我使用下面提到的MongoDB答案得到了有用的信息。
答案 0 :(得分:2)
我在db上创建了一个属性lowerCaseName
,然后更改了我的查询,如下所示。我通过this MongoDB answer启发了这个解决方案。
getSpecificTempBudgetGroup(name: string): AngularFirestoreCollection<BudgetGroup> {
return this.fireStore.collection<BudgetGroup>(`members/${this.authenticationProvider.member.id}/budgetGroups`, ref => ref
.where('lowerCaseName', '==', name.toLowerCase())
);
}