Firestore选择字段为空的位置

时间:2018-09-20 18:19:50

标签: javascript node.js firebase google-cloud-firestore

如何选择没有特定字段的所有文档?我有以下结构:

user = {
    firstName: 'blabla',
    lastName: 'bloblo',
    address: {
        city: 'xxxx',
        state: 'xxx'
    }
}

我曾尝试与null进行比较,但未成功。

let db = firebase.firestore();  
let querySnapshot = await db
    .collection("users")
    .where("address", "==", null)
    .get();

1 个答案:

答案 0 :(得分:3)

不可能选择“没有特定字段的所有文档”。

您将通过观看名为“开始了解Cloud Firestore”(https://www.youtube.com/playlist?list=PLl-K7zZEsYLluG5MCVEzXAQ7ACZBCuZgZ)的非常出色的Firestore视频系列(特别是第二个视频)来学习,Firestore中的查询基于索引,因此无法在文档中未包含的字段或没有特定值的字段(即“不等于”运算符)上建立索引。

但是,有一种解决方法是查询包含包含具有空值数据类型的属性的文档,请参见How to query Cloud Firestore for non-existing keys of documents

还要有趣的一点是,即使不是您要的内容,该技术也可以用于查询不为空的值Firestore select where is not null