firebase - firestore >= 未按预期返回结果
问题描述
我>=
再次使用查询集合。为了测试脚本,我的收藏中只有 4 个条目。
我的查询是:
...
.where("Workdesc", ">=", "imple") // no returning as expected
.get()
.then(querySnapshot => {
querySnapshot.forEach(function(doc) {
console.log("Result");
console.log(doc.id, " ===> ", doc.data());
});
});
Workdesc
在所有 4 个文档中是 -
- “kj实施”
- “HB 实施紧急”
- “sharu 实施需要快速响应”
- “cb实施紧急工作”
根据我的结果,它应该返回所有 4 个文档,但它只返回 2 个。我附上了控制台日志和 Firebase 控制台的屏幕截图:
如何在字符串中的任何位置使用部分字母返回结果。
解决方案
您的查询按预期工作。当您对字符串进行比较时,它们会按字典顺序排序,或者换句话说,按字母顺序排序。这是每个值的实际排序顺序,以及“impl”在其中排序的位置:
- “cb实施紧急工作”
- “HB 实施紧急”
- “实施”
- “kj实施”
- “sharu 实施需要快速响应”
按字母顺序,您可以看到“k”和“s”在“i”之后。因此,这些是您将从 Workdesc 值大于“impl”的查询中获得的唯一文档。
如果您尝试进行子字符串搜索以查找所有包含“impl”的 Workdesc 字符串,那么 Firestore 无法做到这一点。 Firestore 不提供子字符串搜索。 您必须找到另一种方法(可能将数据镜像到另一个支持它的数据库)。
推荐阅读
- redis - ai.grakn.redismock.exception.ParseErrorException
- sql - SQL - 将文本插入字段 WHERE ___
- angularjs - angularjs 中的路由 - 其他语法中的条件路由
- css - 媒体查询不准确
- sum - DAX 公式比较行
- amazon-web-services - 在这种情况下我应该使用什么 aws 服务?
- android - 创建“左对齐”和“右对齐”HorizontalScrollViews/Recyclerviews
- javascript - Vuejs组件单击事件不起作用
- android - RecyclerView 为空时显示内容
- release-management - 配置更改的持续交付