Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 消防仓库计划_Sql_Google Cloud Firestore_Nosql - Fatal编程技术网

Sql 消防仓库计划

Sql 消防仓库计划,sql,google-cloud-firestore,nosql,Sql,Google Cloud Firestore,Nosql,如果数据库中有10亿个广告,如何获取用户(id)的所有评论 mb注释应该有不同的基本结构吗 我的问题不是要编写什么代码,而是如何正确地将评论与公告相匹配,以便您能够以最低的成本找到用户评论您必须获得所有广告ID,然后是它们的子集合: const adsSnapshot = firebase.firestore().collection("ads").get() const adIDs = adsSnapshot.docs.map(ad => firebase.fire

如果数据库中有10亿个广告,如何获取用户(id)的所有评论

mb注释应该有不同的基本结构吗


我的问题不是要编写什么代码,而是如何正确地将评论与公告相匹配,以便您能够以最低的成本找到用户评论

您必须获得所有广告ID,然后是它们的子集合:

const adsSnapshot = firebase.firestore().collection("ads").get()
const adIDs = adsSnapshot.docs.map(ad => firebase.firestore().collection("ads").doc(ad.id).collection("comments").get())
const commentsSnap = await Promise.all(adIDs)
在那里你可以得到所有广告中所有评论的查询快照。你可以根据需要对其进行解析


为了防止读取以获取所有ADs ID和轻松查询注释,您可以创建一个专用的注释集合,其中包含commentID、userID、adID和时间戳。

如果有数十亿个广告,这不是一种无效的方法吗?我的问题不是写什么代码,但是,如何正确地将注释与公告匹配,以便您可以用最少的时间找到用户注释cost@antnotttxxa然后我宁愿为注释创建一个单独的集合,其中每个文档将包含注释ID、用户ID、广告ID和创建时的时间戳。然后,您可以根据时间戳、用户或广告对评论进行排序。如果我有10亿个广告,那么我的评论将增加50倍,这样的表不会导致任何问题?@antnotttxxa首先,Firestore不是具有表格结构的SQL DB。这是NoSQL。无论何时创建新文档,它都会为其创建索引。所以,如果你有5个或100万个广告,那么你需要同样的时间来查询。你可以看更多的解释