【问题标题】:saving the highest sequence number of a collection in a variable将集合的最高序列号保存在变量中
【发布时间】:2021-08-23 12:22:12
【问题描述】:

我是 Angular/Firestore 初学者并尝试解决以下问题:

我有一个名为“todosonserver”的集合,其中包含多个文档。每个文档都包含一个 seqNr 字段。每当我向集合中添加新的 Todo 时,我想确定集合中所有文档的最高 seqNr 并添加 1。

我的想法是按 seqNr 对文档进行排序的查询:

this.lastTodoSeqNr = this.db.collection<any>('todosonserver', ref => ref.orderBy('seqNr', 'desc').limit(1))

但我不知道如何进行。我相信你们中的一些人对我的问题有很好的解决方案?谢谢!

【问题讨论】:

    标签: angular firebase google-cloud-firestore


    【解决方案1】:

    你的想法不错。根据seqNr 查询集合,将结果降序排列,然后将结果限制为一个,这是您可以继续使用的解决方案。是最好的解决方案,因为它只需要一次读取。或者,您可以通过使用最后一个文档的seqNr 更新文档来跟踪该号码。这也需要一次读取,但在添加新文档时还需要额外的写入操作。

    【讨论】:

    • 感谢您的反馈。你能帮我学习一些代码吗,我该如何继续?最后,我需要一个其中所有文档中 seqNr 最高的变量...如果您能提供一些帮助会很棒...
    • 谢谢!但我还有一些问题。对不起 - 我是一个初学者,只是在这一点上挣扎。我用错误消息回答了我的 piost
    • 我只是回滚了我的答案,所以它不会混淆未来的访问者。要解决这个问题,您应该根据答案中的信息自行尝试,如果出现其他问题,请提出另一个问题。
    • 谢谢!我也是 stakoverflow 的新手,所以谢谢你的提示!
    【解决方案2】:

    谢谢!如果我尝试这个,我会收到以下 2 个错误:

    找不到名称“flatMap”。 和 参数 'todosonserver' 隐式具有 'any' 类型。

    由于我真的被困在这里,如果您能给我一个解决方案和一些解释,那就太好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      • 2022-10-25
      • 2017-08-19
      • 1970-01-01
      • 2014-03-14
      相关资源
      最近更新 更多