【发布时间】:2020-06-14 17:57:53
【问题描述】:
我是 Firestore 数据库的新手,之前没有使用 NoSql 数据库的经验(我来自经典关系数据库)
我知道我可以执行这样的查询:
return this.db.collection(
'courses',
ref=>ref.where("seqNo", "==", "5")
.where("lessonCount", ">=", 5)
这应该检索所有对象(来自我的courses 集合),其中seqNo 字段等于5 并且lessonCount 字段具有值>=5。
好的,这个查询可以正常工作。
我不明白的是,为什么在 Firebase 中无法实现一些简单且非常自然的查询。例如一个经典的范围查询,改变以前的查询是这样的:我想检索所有具有seqNo >= 5和lessonCount >= 5的课程:
return this.db.collection(
'courses',
ref=>ref.where("seqNo", ">=", "5")
.where("lessonCount", ">=", 5)
我知道这是与性能和索引相关的权衡。
但我不明白为什么 Firestore 不能在不等式条件没有不同过滤器的情况下执行查询
为什么?它是如何在引擎盖下工作的?我错过了什么?
【问题讨论】:
标签: firebase google-cloud-firestore