Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何处理google Firestore中的外键情况?

如何处理google Firestore中的外键情况?
EN

Stack Overflow用户
提问于 2020-08-29 06:17:59
回答 2查看 218关注 0票数 2

因为Firestore中没有像MYSQL那样的外键功能,所以我不能复制我的一个重要功能,那就是在一个地方更新文件,它将反映在每个地方。此外,Firebase没有一次更新所有文档特定文件的功能。

已经有这样的问题了,但我无法得到我的解决方案。假设我有一百万个文档,其中包含一个文件,它是材料的密度。后来,我发现我的密度值是错误的,所以如何有效地更新所有文档中的值。另外,我不想使用server/admin SDK。

EN

回答 2

Stack Overflow用户

发布于 2020-08-29 06:50:19

如果需要更改100万个文档的内容,则需要查询这100万个文档,迭代结果,然后逐个更新这100万个文档。

没有等价的sql "update where“语句可以在一个查询中更新多个文档。它需要对每个文档进行一次更新。

票数 2
EN

Stack Overflow用户

发布于 2020-08-29 08:40:59

如果不想使用Admin SDK,那么您可以选择更新客户端上densityMaterial属性的值,这可能不是最好的解决方案。但是,如果您可以将更新操作划分为较小的块,则可能会成功。

如果您使用POJO类来映射每个文档,那么您可能会对我在以下帖子中的回答感兴趣:

How to update one field from all documents using POJO in Firestore?

如果你没有使用POJO类,请查看我在以下帖子中的回答:

Firestore firebase Android search and update query

关于成本,您将为每个更新的文档支付一次写操作。如果所有1个MIL文档都将更新,则将向您收取1个MIL写入操作的费用。

编辑:

假设我有一百万个文档,其中包含一个文件,这个文件的密度是材料的密度。,

。后来,我发现我的密度值是错误的,所以如何有效地更新所有文档中的值。

如果所有这1MIL文档都包含一个名为densityMaterial的属性,该属性具有完全相同的值,那么将该属性存储在每个文档中就没有任何意义。您可以创建包含该特定值的单个文档,并且在这1个MIL的每个文档中,只需添加对该文档的引用。DocumentReference是supported data-type。现在,如果您需要更改该值,它将仅导致单次文档写入。

但是,如果densityMaterial属性有不同的值,并且所有值都是错误的,那么数据库没有问题,添加数据的机制/人员有问题。如果您添加了1个MIL不正确的文档,这不是数据库问题。

为什么不选择MySQL?

MySQL不能像Cloud Firestore那样扩展。Firestore只是简单地进行大规模扩展。

我能避免这个问题吗?

是的,您可以使用单个文档购买此类详细信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63644062

复制
相关文章
[译] 如何处理 JavaScript 比较中的临界情况
原文地址:https://medium.com/javascript-in-plain-english/how-to-handle-comparison-corner-cases-c96ae9a17d4a 原文作者:Alen Vlahovljak 译文出自:"掘金翻译计划"(https://github.com/xitu/gold-miner) 本文永久链接:https://github.com/xitu/gold-miner/blob/master/article/2020/how-to-handle-
江米小枣
2020/09/16
1.8K0
外键的设置
② 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立;
诡途
2022/05/09
2.8K0
外键的设置
mysql的外键
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以; 外键的好处:可以使得两张表关联,保证数据的一致性
java达人
2018/01/31
5.5K0
gorm指定外键和关联外键
一直分不清association_foreignkey和foreignkey的作用,此文总结一下
平凡的学生族
2019/12/24
6.9K0
gorm指定外键和关联外键
如何处理 MySQL错误码 1215:无法添加外键约束?
本文介绍如何利用Python和Pandas库实现数据预处理,包括数据清洗、转换、分析和可视化等操作。
王翔
2017/06/19
21.6K0
django开发中关于外键设置
我们要把源码中的db_constraint设置成Flase这样就有关联关系,但是不会受他约数
小小咸鱼YwY
2019/09/11
1.4K0
外键约束
外键约束 foreign key 外键约束的要求: 父表和字表必须使用相同的存储引擎,禁止使用临时表; 数据库引擎只能是InnoDB; 外键列和参照列必须具有相似的数据类型,数字的长度或者是否有符号必须一样,字符长度可以不不一样; 外键列和参照列必须创建索引,参照列没有索引,mysql回自动创建索引; ----------- 下面创建两个数据表 1(父表)省份表两个字段 id (主键) 省份名称 2(子表)用户表三个字段 id (主键) 用户名称 省份编号(外键对应省表的主键id类型一样,因为需要把这个设
前朝楚水
2018/04/04
2K0
外键约束
     2.设置外键约束的两个表之间会有 父子关系 ,即字表中外键字段的取值范围 取决于 父表
全栈程序员站长
2022/09/06
1.7K0
SQLAlchemy外键的使用
orm可以将数据库存储的数据封装成对象,同时,如果封装的好的话,所有的数据库操作都可以封装到对象中。这样的代码在组织结构上会非常的清晰,并且相对与使用sql语句在sql注入方面会极具降低。 SQLAlchemy中的映射关系有四种,分别是一对多,多对一,一对一,多对多 实现这种映射关系只需要外键(ForeignKey),和relationship 一对多: from sqlalchemy.ext.declarative import declarative_base from sqlalchemy impor
用户1173509
2018/01/17
2.3K0
Oracle 数据库创建外键后禁用外键的方法
我们创建外键后,可能有时会遇到要禁用外键的情况,那么在Oracle中,我们如何对外键进行禁用呢?
用户8965210
2021/09/02
3.1K0
数据库在有外键约束的情况下,怎么删除数据库中的数据
JaneYork
2023/10/11
3660
数据库在有外键约束的情况下,怎么删除数据库中的数据
mysql如何添加一个表的外键
该文介绍了如何给MySQL数据库的表添加外键,包括创建父表和子表,以及在创建表时添加外键约束。具体步骤包括创建省份表和用户表,在用户表中添加外键约束,将省份表的主键作为用户表的外键,最后使用ALTER TABLE语句添加外键约束。
别先生
2018/01/02
4.3K0
google搜索外站
google搜索外站 1.百度搜索:极简插件 2.右上角搜索:同步助手—选择第一个 3.进入同步助手—推荐下载 4.解压—拖拽到拓展程序 5.登录谷歌账户—右上角 6.启用同步助手:设置 7.修改搜索引擎:google 8.配置完成 9.搜索结果
懿曲折扇情
2022/09/06
6340
google搜索外站
MySQL 如何删除有外键约束的表数据
今天删除数据库中数据,提示因为设置了foreign key,无法修改删除 可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。
人生不如戏
2018/10/15
7.9K0
MySQL外键约束
关系键是关系数据库的重要组成部分。关系键是一个表中的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。 其中就包括外键
JavaEdge
2022/11/29
6.5K0
MySQL外键约束
Mysql外键约束
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。外键主要用来保证数据的完整性和一致性 两个表必须是InnoDB表,MyISAM表暂时不支持外键 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如in
暖月寒星
2020/03/10
5.9K0
MySQL外键约束
外键其实很好理解,简单的说就是两张表建立一个连接关系。这里我们那主表A和副表B举例,我A表中有用户信息,B表中有用户订单信息。要是数据完整对应起来,肯定是需要把两张表关联起来,我们因此会在B表中村一个A表的字段,常见的我们存的是A表的主键ID外键。
兔云小新LM
2019/08/02
5.9K0
外键(FOREIGN KEY)
1、表的组织结构复杂不清晰 2、浪费空间 3、扩展性极差
全栈程序员站长
2022/09/07
9410
点击加载更多

相似问题

如何在Firestore中设置外键?

32

处理外键

11

外键插入情况

27

如何在FactoryGirl中处理外键

24

在gcp firestore中设置外键和主键

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文