NodeJS 查找特定范围内的所有firestore文档

3gtaxfhh  于 11个月前  发布在  Node.js
关注(0)|答案(1)|浏览(98)

我在Firestore中有一个文档,它有“from”和“to”字段。我想找到所有触及给定范围的文档,例如:

Doc 1
  from: 2
  to: 4
  
Doc 2
  from: 4
  to: 8
  
Doc 3
  from: 7
  to: 10
  
Doc 4
  from: 3
  to: 5
  
Doc 5
  from: 1
  to: 2

个字符
所以结果是:文档1,文档2,文档4
有没有什么方法可以做到这一点在火?
为了更好地理解


的数据
我试过这个密码

.where('from', '>=', 3)
.where('to', '<=', 6)


但问题是,如果其中一个条件没有得到满足,那么该文件将不包括在内
注:“from”和“to”字段的数据类型为Long

lg40wkob

lg40wkob1#

当前无法在Firestore查询中对多个字段执行范围条件。单个查询中的所有范围条件必须在同一字段上。
一个可能的解决方法是存储文档所涉及的插槽数组,因此:

  • 文档1:slots: [2, 3, 4]
  • 文档2:slots: [4, 5, 6, 7, 8]
  • 文件3:slots: [7, 8, 9, 10]
  • 文件4:slots: [3, 4, 5]
  • 文档5:slots: [1, 2]

然后,您可以使用array-contains-any条件来捕获具有范围内任何插槽的文档:

collectionRef.where('slotsField', 'array-contains-any', [3, 4, 5, 6])

字符串

相关问题