【问题标题】:How to query for documents with field 'name' not equal to both 'RELAY' and 'INFRARED', Firestore Flutter?如何查询字段“名称”不等于“RELAY”和“INFRARED”的文档,Firestore Flutter?
【发布时间】:2021-06-05 00:37:14
【问题描述】:

我有一个文档集合 devices,其中包含一个字段 name 和 5 个可能的字符串值 'LIGHT', 'TEMP', 'SOUND', 'INFRARED', 'RELAY'。如何仅查询字段 name 不等于 'INFRARED''RELAY' 的文档?

我想到的解决方案是使用复合查询

FirebaseFirestore.instance
      .collection('devices')
      .where(
        'name',
        isNotEqualTo: 'RELAY',
      )
      .where(
        'name',
        isNotEqualTo: 'INFRARED',
      );

但这根本不起作用。

【问题讨论】:

    标签: flutter dart google-cloud-firestore


    【解决方案1】:

    现在有not-in - 类似于in,它将单个字段匹配到数组中的任何条目,但在这种情况下不在数组中。

    https://firebase.google.com/docs/firestore/query-data/queries#in_not-in_and_array-contains-any

    限制为包含 10 个或更少条目的数组,这适合您的两个值的用例。

    另请注意:查询中使用的任何字段都会自动reject所有没有该字段的文档。

    【讨论】:

      猜你喜欢
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2021-04-22
      • 1970-01-01
      相关资源
      最近更新 更多