【发布时间】:2020-06-29 21:28:26
【问题描述】:
我的收藏“abc”如下所示:
abc
doc1: {
users: {
uid1: {
gender: 'm',
age: '99'
},
uid2: ...
uid3: ...
...
}
},
doc2: {
...
现在我想在用户中找到所有具有特定 uid 键的文档。 (我从云函数内部查询)
const uid = context.params.uid
我尝试了以下查询:
db.collection('abc').where(`users[${uid}]`, '>', '').get()
db.collection('abc').where(`users.${uid}`, '>', '').get()
db.collection('abc').where(`users[${uid}].gender`, '>', '').get()
db.collection('abc').where(`users.${uid}.gender`, '>', '').get()
它们会在函数控制台中导致错误,指出它不是有效的字段路径。所以我也尝试了这些
db.collection('abc').where(new admin.firestore.FieldPath(`users[${uid}]`), '>', '').get()
db.collection('abc').where(new admin.firestore.FieldPath(`users[${uid}].gender`), '>','').get()
db.collection('abc').where(new admin.firestore.FieldPath(`users.${uid}`), '>', '').get()
db.collection('abc').where(new admin.firestore.FieldPath(`users.${uid}.gender`), '>', '').get()
这也失败了。
这是否意味着无法进行动态 where 查询?或者我该如何正确地做到这一点?我应该以不同的方式构建数据吗?怎么样?
【问题讨论】:
标签: javascript firebase google-cloud-firestore