使用对象元素作为参数

时间:2017-11-07 22:12:44

标签: javascript firebase google-cloud-firestore

我在项目中使用Firestore作为我的数据库,我有一个表,我需要在对象内部进行查询

{
   foo: "data",
   bar[enter image description here][1]: "data",
   exObject: {
      dataToQuery: "value"
   }
}

这是我想在对象内部进行查询的结构示例 一个看起来像这样的查询:

dbRef.collection("Table").where("exObject.dataToQuery", "==", "value")

但这不起作用。

有没有办法在Firestore中使用对象的内部值作为参数进行查询? 如果没有,有没有办法实现可以产生相同结果的东西?

Firestore结构示例

enter image description here

4 个答案:

答案 0 :(得分:9)

dbRef.collection("Table").where("exObject.dataToQuery", "==", "value")

我首先发布的这种语法确实是很好的语法并最终开始工作。我把我的问题的原因归结为一个错字,我必须纠正尝试很多不同的事情

答案 1 :(得分:0)

尝试(从'表'更改为'测试')

xptoCollection : AngularFirestoreCollection<any>;

  constructor(private afs: AngularFirestore) { }

      this.xptoCollection = this.afs.collection('TEST', ref => {
        return ref.where('exObject.{dataToQuery}', '==', 'value');
      });

答案 2 :(得分:0)

这是答案:

.where(new firestore.FieldPath('exObject' , 'dataToQuery'), '==', "value"))

更多信息Here

答案 3 :(得分:-1)

由于某种原因, 您需要在object_name和.property_name之间留出空格

'exObject .dataToQuery'

代替

 'exObject.dataToQuery'

留下空间对我有用