【问题标题】:Firestore delete ALL fields but ONEFirestore 删除除 ONE 以外的所有字段
【发布时间】:2020-08-03 12:32:09
【问题描述】:

是否可以删除 Firestore 文档中的所有字段,除了 SINGLE 数据库中的一个字段写入(无需 pior 读取)

我知道我有一份包含一些礼仪的文件,但我不知道所有这些。我想删除所有这些属性,除了我知道的一个。

我认识的是keep

            {
                keep: 'keep',
                remove1: 'remove',
                remove2: 'remove',
                remove3: 'remove',
            }

交易后的文件应该是:

            {
                keep: 'keep',
            }

我本可以在每个键上使用firebase.firestore.FieldValue.delete()

【问题讨论】:

  • 您知道keep 属性的值吗? keep 属性是否始终相同?
  • 不,我不知道。它并不总是一样的。我们保持原样

标签: node.js firebase google-cloud-firestore


【解决方案1】:

如果您知道要保留的字段的名称和值,则可以使用仅包含您知道的属性的对象覆盖文档:

const keepValue = ...;
db.collection('mycollection').doc('mydoc').
set(
  { keep: keepValue }
);

由于我们使用没有合并选项的set() 方法,文档中的所有字段都将被传递给set() 方法的对象覆盖。


如果您不知道要保留的字段的值(或名称),则需要阅读文档才能找到该值或名称。

【讨论】:

  • 但是你从哪里得到 keepValue ?
  • 您需要先阅读它。所以“是否有可能......没有事先阅读它”的答案是否定的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
相关资源
最近更新 更多