当前位置: 首页 > 知识库问答 >
问题:

Firestore:query where子句>嵌套字段

傅丁雷
2023-03-14

我用的是Flutter和Firestore。假设我的数据库如下所示:

[
  {
    Name: 'John',
    Address: {
      Street: "John doe street"
      Postal: "12047"
    }
  },
  {
    Name: 'Mary',
    Address: {
      Street: "Fleet street"
      Postal: "1242B"
    }
  }
]

我现在要搜索邮政编码包含“12”的所有人。所以这意味着这个虚拟数据库中的两个记录。

但是,如何在嵌套字段“Address.Postal”上进行筛选?

var ref = FirebaseFirestore.instance;
var query = '12';
ref.collection('users')
        .where(
          'Address.Postal', // Won't work
          ... // There is no 'like' operator or something that looks alike
        );

仅供参考,Flutter中的项目无关紧要。

共有1个答案

闾丘朗
2023-03-14

无法检查数组项中的特定属性。您所能做的就是用< code>array-contains检查整个项目是否存在。但是为此,您需要知道整个数组项,因此所有的名称和地址属性。

如果您只有名称,则没有内置运算符来测试任何数组项是否包含该名称。相反,您希望仅将名称提取到它们自己的数组中(例如addressNames),然后在其上使用array-包含

 类似资料:
  • 问题内容: 在SQL Server中, 您可以这样编写嵌套的SQL: 这样,我可以获得一个可以嵌套到其他查询中的临时表T。 但是我不能在oracle SQL中做同样的事情 它给我 选择*有效,但这不是我想要的。有人知道该怎么做吗? 问题答案: 无论我显式指定别名还是指定,您发布的查询都对我有效。收到异常后,您可以发布正在运行的确切查询吗? 我的猜测是您要选择不带双引号的内容。如果在Oracle中使

  • 前面章节中,详细介绍了 3 种形式的条件语句,即 if、if else 和 if elif else,这 3 种条件语句之间可以相互嵌套。 例如,在最简单的 if 语句中嵌套 if else 语句,形式如下: if 表达式 1:     if 表示式 2:         代码块 1     else:         代码块 2 再比如,在 if else 语句中嵌套 if else 语句,形式

  • Swift 条件语句 在 Swift 语言中,你可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 语法 Swift 语言中 嵌套 if 语句的语法: if boolean_expression_1 { /* 当 boolean_expression_1 表达式 true 时执行 */ if boolean_expression_2 {

  • C++ 判断 您可以把一个 switch 作为一个外部 switch 的语句序列的一部分,即可以在一个 switch 语句内使用另一个 switch 语句。即使内部和外部 switch 的 case 常量包含共同的值,也没有矛盾。 C++ 中的 switch 语句允许至少 256 个嵌套层次。 语法 C++ 中 嵌套 switch 语句的语法: switch(ch1) { case 'A'

  • C++ 判断 在 C++ 中,嵌套 if-else 语句是合法的,这意味着您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 语法 C++ 中 嵌套 if 语句的语法: if( boolean_expression 1) { // 当布尔表达式 1 为真时执行 if(boolean_expression 2) { // 当布尔

  • 我有一个连接两个表的非常简单的连接表,为了简化问题,我们可以说表1是a,表2是B,有一个连接表AB。 其中A_id_fk和B_id_fk分别是外键。我试图创建一个查询来检索a中与B有关系的所有行,所以我的函数接收B_id作为参数,我想搜索AB以获得B_id_fk==B_id的所有行,然后使用搜索a搜索A_id==上一次搜索返回的A_id_fk的所有行。 我进行了测试,可以在简单的SQL中使用嵌套的