我需要Firestore Query来检查对象是否已定义

时间:2018-04-05 21:18:23

标签: javascript google-cloud-firestore

这是我想要查询的示例集合。

{
  name: "example1"
},
{
 name:"example2",
 address: {
  address2: "12 dasl"
 }
},
{
 name:"example3",
 address: {
  address1: "12 dasl"
 }
}

预期结果:example2,example3

我尝试使用像

这样的东西
db.collection("users").where("address", ">", "")

但它不起作用。

1 个答案:

答案 0 :(得分:1)

Cloud Firestore只能查询每个文档中已知路径的字段。由于情况并非如此,您无法使用当前数据模型执行所需的查询。

来自Firestore documentation on query limitations

  

Cloud Firestore不支持以下类型的查询:

     

...

     

各个阵列成员的查询。但是,您可以使用Working with Arrays, Lists, and Sets中的技术建模和查询类似数组的数据。

在您的情况下,我考虑在每个文档中添加一个标记是否有地址的简单字段。 E.g:

{
  name: "example1",
  hasAddress: false
},
{
 name:"example2",
 hasAddress: true,
 address: {
  address2: "12 dasl"
 }
},
{
 name:"example3",
 hasAddress: true,
 address: {
  address1: "12 dasl"
 }
}

现在您的查询变得简单了:

db.collection("users").where("hasAddress", "==", true)