查询与空字段

时间:2018-01-15 20:21:46

标签: firebase go google-cloud-firestore

我的Firestore集合包含带字符串字段的文档,可以是 null

我期待如果我查询:

Collection("products").Where("producedDate", "<", "2018-01-15")

我会得到所有产品&#34; productionDate&#34;早于&#34; 2018-10-15&#34;,包括那些&#34;产生日期&#34;是空的。

但实际上我没有得到null s。

这是故意还是错误?

1 个答案:

答案 0 :(得分:3)

打算以这种方式工作。 documentation表示:

  

如果查询涉及具有混合类型值的字段,则为Cloud   Firestore使用基于内部的确定性排序   表示。以下列表显示了顺序:

     
      
  1. 空值
  2.   
  3. 布尔值
  4.   
  5. 整数和浮点值,按数字顺序排序
  6.   
  7. 日期值
  8.   
  9. 文字字符串值
  10.   
  11. [...]
  12.   

请注意,当您运行具有混合类型值的查询时,它仅遵循此顺序。在您的查询中,您传递了Date值,这意味着它只会查询 Date 类型值,而不会查询其他值(例如例如null

要获取null值,您可以通过添加第二个Where来创建复合查询:

Collection("products").Where("producedDate", "<", "2018-01-15").Where("producedDate", "==", null)