gpt4 book ai didi

typescript - Firestore 在对象数组字段中查找具有特定对象的文档

转载 作者:搜寻专家 更新时间:2023-10-30 21:56:25 28 4
gpt4 key购买 nike

我正在尝试查询我的 firestore 数据库以查找集合中包含数组字段中特定对象的所有文档。假设我的数据库有一个像这样的文章集合:

articles:
[
{
id: "1",
title: "First Article",
comments:[]
relatedArticles:[
{
id: "2",
title:"Second Article"
},
{
id: "3",
title:"Third Article"
},
]
},
{
id: "2",
title: "Second Article",
comments:[]
relatedArticles:[
{
id: "1",
title:"First Article"
}
]
}
{
id: "3",
title: "Third Article",
comments:[]
relatedArticles:[
{
id: "1",
title:"First Article"
}
]
}
]

articles 集合中的每篇文章都有一个数组字段 (relatedArticles),其中包含一组对象,每个对象都包含相关文章的 ID 和标题。假设我想在数据库中查询相关文章字段中包含文章 1 的所有文章。假设无法修改此结构,我将如何处理。我尝试了以下无济于事:

firestore().collection("articles")
.where("relatedArticles", "array-contains", {title: "First Article", id: "1"})

这可行吗?如果不是,那是什么?

最佳答案

进行包含数组的搜索时,您只能匹配数组中对象的整个元素。您无法像现在尝试做的那样从数组中挑选出对象的更深场。

如果要满足此查询,您将需要文档中的其他一些可搜索字段。也许一组相关的文档 ID 对您有用。为了满足查询,像这样在 NoSQL 数据库中复制数据是很常见的。

关于typescript - Firestore 在对象数组字段中查找具有特定对象的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54869170/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com