Javascript 当集合中的项目数超过三个时覆盖记录

Javascript 当集合中的项目数超过三个时覆盖记录,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我需要将项目列表写入Firebase集合,但当已经有三个项目时,我需要它覆盖现有值。因此,集合中的项目数保持小于等于3 目前我正在检查计数并在设置新值之前删除 const count = await connection() .collection(`someCollection`) .count(); if(count === 3) { // delete last record } const someCollection = await conn

我需要将项目列表写入Firebase集合,但当已经有三个项目时,我需要它覆盖现有值。因此,集合中的项目数保持小于等于3

目前我正在检查计数并在设置新值之前删除

  const count = await connection()
    .collection(`someCollection`)
    .count();

  if(count === 3) {
   // delete last record
   }

  const someCollection = await connection()
    .collection(`someCollection`)
    .doc();

  someCollection.set({
    history
  });

我可以在一个查询中这样做吗?

因为您最多需要三个项目,我会考虑将它们全部存储在一个文档中。 这样,您只需加载该文档,检查其中的记录数,并相应地进行更新


根据您要删除的是哪一个(最旧还是最新),使用数组可能是最简单的(因为您可以使用
推送
弹出
移位
取消移位
前置
追加
操作)。

因为您最多需要三项,您是否考虑将它们全部存储在单个文档中?因此,如果我使用单个文档,那么在单个查询中,我还将如何进行上述操作。由于每个记录都是单独生成的,因此它们将用作简单用户事件的历史记录。如果将所有三条记录存储在一个文档中,则只需加载该文档,检查其中的记录数,并进行相应更新。根据您要删除哪一个(最旧的还是最新的),使用数组可能是最简单的(因为您可以使用
推送
弹出
移位
取消移位
前置
,以及
追加
操作)。谢谢@FrankvanPuffelen,我真傻,没有想到这一点