首页 文章

根据Firebase中的类别检索数据

提问于
浏览
1

我是Firebase的新手,我有一个关于检索一些数据的问题 . 可以说我有以下数据结构:

Screenshot of the JSON

我的查询的目标是针对给定的国家/地区名称我想要检索其目标数组包含此国家/地区的所有用户 . 例如:对于“Jordan”的查询,它将检索:user2和user3 .

有人知道我怎么能用Firbase Angular做这样的查询?

1 回答

  • 4

    Firebase没有与数组中的项匹配的查询运算符 . 实际上:Firebase建议不要使用阵列来处理您拥有的阵列 . 相反,存储这样的数据:

    advisors-countries: {
      user1: {
        destinations: {
          Angola: true,
          Australia: true
        }
      },
      user2: {
        destinations: {
          Angola: true,
          Austria: true,
          Jordan: true
        }
      },
      user3: {
        destinations: {
          Austria: true
          Egypt: true,
          Jordan: true
        }
      }
    }
    

    现在您可以查询目的地Jordan的用户:

    var users = ref.child('advisors-countries').orderByChild('destinations/Jordan')
                                               .equalTo(true);
    

    然后使用以下命令将其绑定到AngularJS范围:

    $scope.users = $firebaseArray(users);
    

    这种类型的数据结构称为索引,您经常会发现需要向NoSQL数据库添加特定索引以满足应用程序的查询要求 . 有关该主题的详细介绍,请参见article on NoSQL data modeling .

相关问题