You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Firestore中查询与指定范围存在交集的文档?

Firestore 查询与指定范围存在交集的文档

你需要的是判断文档的[from, to]范围和目标范围[targetFrom, targetTo]是否存在交集,正确的查询条件要基于两个范围重叠的逻辑规则:

两个范围存在交集的充要条件是:

文档的from ≤ 目标范围的to,并且文档的to ≥ 目标范围的from

具体查询代码

以JavaScript为例,对应你的目标范围from:3,to:6,代码如下:

const targetFrom = 3;
const targetTo = 6;

db.collection('你的集合名称')
  .where('from', '<=', targetTo)
  .where('to', '>=', targetFrom);

逻辑验证(对应你的示例)

  • 文档1:from=2 ≤6 且 to=4 ≥3 → 符合条件
  • 文档2:from=4 ≤6 且 to=8 ≥3 → 符合条件
  • 文档3:from=7 >6 → 不满足第一个条件,排除
  • 文档4:from=3 ≤6 且 to=5 ≥3 → 符合条件
  • 文档5:to=2 <3 → 不满足第二个条件,排除

结果正好是你预期的文档1、文档2、文档4。

注意事项

首次运行该查询时,Firestore会返回索引缺失的错误,你可以直接按照错误提示中的指引,到Firestore控制台自动创建对应的复合索引即可。

内容的提问来源于stack exchange,提问作者Deny Hilhamsyah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 00:14:54