例如,查看我的数据库结构:
我想运行与此类似的查询:
db.collection('identites').where("partyMembers", "array-contains", {name: "John Travolta"})
谢谢。
答案 0 :(得分:3)
正如弗兰克(Frank)在他的回答中解释的那样,对于包含数组的对象,不可能查询存储在数组中的对象的特定属性。
但是,有一种可能的解决方法:根据您的情况,实际上可以查询整个对象,如下所示:
db.collection('identites').where("partyMembers", "array-contains", {id: "7LNK....", name: "John Travolta"})
也许这种方法可以满足您的需求(或可能不...。)
答案 1 :(得分:2)
array-contains
操作检查数组是否包含特定(完整)值。它无法检查对象数组是否包含具有特定属性值的项目。
执行查询的唯一方法是在文档中添加一个仅包含您要查询存在的值的字段。例如:partyMemberNames: ["John Travolta", "Olivia Newton"]
。