【发布时间】:2019-02-02 19:28:48
【问题描述】:
我有以下文件:
{
"ID" : "01",
"Name" : "A1",
"players" : [ {
"active" : false,
"name" : "dissident"
}, {
"active" : false,
"name" : "ink"
}
]
}
用 JSON 写下来,这样更容易理解。 现在我想要对 firestore 做的是查询 player[*].name。 我已经看到了使用“array_contains”的新选项。
但我看到所有示例都使用字符串数组而不是对象数组。 是否可以查询players[*].name?
这是我尝试过的:
this.afs.collection('Locations', ref => ref.where('players.name', 'array-contains', _name))
基于我建立的@camden_kid 反应:
this.locationsCollection = this.afs.collection('Locations', ref => ref.where('players', 'array-contains', {active : false, name : _name}) );
if(this.locationsCollection === undefined){
this.locationsCollection = this.afs.collection('Locations', ref => ref.where('players', 'array-contains', {active : true, name : _name}) );
}
但这取决于活动值,这不适用于每种情况。
【问题讨论】:
-
您是否尝试过针对整个对象进行测试?例如。
this.afs.collection('Locations', ref => ref.where('players', 'array-contains', {active : false, name : _name})) -
您可以将其添加为有效的答案:)
标签: angular firebase google-cloud-firestore