【发布时间】:2019-01-10 08:55:54
【问题描述】:
我每天都将外部零售商的产品导入Google Cloud Firestore 数据库。
在此过程中,产品可以是新的(新文档将添加到数据库中)或现有的(现有文档将在数据库中更新)。
应该注意,我每天要导入大约 1000 万件产品,所以我没有查询每个产品的数据库以检查它是否已经存在。
我目前正在使用set with merge,这正是我所需要的,因为它会在文档不存在或更新现有文档的特定字段时创建文档。
现在的问题是,如果提供的字段将被更新,我如何实现 createdAt 时间戳,因此原始 createdAt 时间戳将在更新时丢失?如果文档中已经存在该字段,有什么方法可以不更新该字段?
【问题讨论】:
-
创建文档时如何使用云函数创建一个新的专用字段。当您更新文档时,该字段不应包含在您传递给
set()方法的对象中。 -
好点。会试一试的。
-
我已经根据我的评论详细说明了一个答案,并带有相应的 Cloud Function 代码。希望这会有所帮助。
-
在 Node.js 端,DocumentSnapshot 包含
createTime的字段。 -
@BobSnyder 感谢 Bob 提供的信息,很高兴知道!您是否建议CF可以使用
snap.createTime;作为字段值?
标签: database firebase google-cloud-firestore