这是我想要查询的示例集合。
{
name: "example1"
},
{
name:"example2",
address: {
address2: "12 dasl"
}
},
{
name:"example3",
address: {
address1: "12 dasl"
}
}
预期结果:example2,example3
我尝试使用像
这样的东西db.collection("users").where("address", ">", "")
但它不起作用。
答案 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)