Javascript 当集合中的项目数超过三个时覆盖记录
我需要将项目列表写入Firebase集合,但当已经有三个项目时,我需要它覆盖现有值。因此,集合中的项目数保持小于等于3 目前我正在检查计数并在设置新值之前删除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
const count = await connection()
.collection(`someCollection`)
.count();
if(count === 3) {
// delete last record
}
const someCollection = await connection()
.collection(`someCollection`)
.doc();
someCollection.set({
history
});
我可以在一个查询中这样做吗?
因为您最多需要三个项目,我会考虑将它们全部存储在一个文档中。 这样,您只需加载该文档,检查其中的记录数,并相应地进行更新
根据您要删除的是哪一个(最旧还是最新),使用数组可能是最简单的(因为您可以使用
推送
,弹出
,移位
,取消移位
,前置
和追加
操作)。因为您最多需要三项,您是否考虑将它们全部存储在单个文档中?因此,如果我使用单个文档,那么在单个查询中,我还将如何进行上述操作。由于每个记录都是单独生成的,因此它们将用作简单用户事件的历史记录。如果将所有三条记录存储在一个文档中,则只需加载该文档,检查其中的记录数,并进行相应更新。根据您要删除哪一个(最旧的还是最新的),使用数组可能是最简单的(因为您可以使用推送
,弹出
,移位
,取消移位
,前置
,以及追加
操作)。谢谢@FrankvanPuffelen,我真傻,没有想到这一点