您能告诉我如何在 Firestore 上进行不区分大小写的查询吗?
例如 Hallway
和hallway
两者必须相同。但下面的查询会进行精确搜索。即如果数据库有 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 答案得到了有用的信息。
最佳答案
我在数据库上创建了一个像 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())
);
}
关于angular - Firestore 上不区分大小写的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49219246/