例如,看一下我的数据库结构:

我想运行类似于此的查询:
db.collection('identites').where("partyMembers", "array-contains", {name: "John Travolta"})
Run Code Online (Sandbox Code Playgroud)
谢谢。
firebase reactjs google-cloud-firestore react-redux-firebase
在Cloud Firestore中,我需要使用array-contains查询在包含地图的数组中找到匹配项。
我可以很容易地匹配直接字符串,数字等,但是当数组的值是映射时,它总是失败。文档没有暗示这是否可能。
这是一些数据的例子
{
data:
[
item_1: {...},
item_2: {...}
]
}
Run Code Online (Sandbox Code Playgroud)
这是查询的示例
db.collection("list")
.where("data", "array-contains", "item_1")
.get()
.then(collectionRef => {
//do something with collection
})
Run Code Online (Sandbox Code Playgroud)
我期望数组包含的内容与地图的最高值(item_x)匹配,此刻与此不匹配。我认为这是因为它想将地图的整个内容匹配为数组项的“值”。
任何帮助,将不胜感激。如果这不可能,我可能不得不重新考虑我的数据结构。对于上下文,我在云函数中使用此函数在原始文档更新时更新数组中的项目(它们是对文档的引用)。