Firestore仅保留最新文档的经济有效方式?

时间:2018-08-31 12:50:30

标签: firebase google-cloud-firestore

我有一个带有日志的子集合,但只想保留X个最新的日志以解决存储问题。我正在尝试找出使该日志收集较小的最经济有效的方法。 (所有日志都有时间戳)

更新

似乎解决方案是每X天运行一次维护作业服务器端以删除多余的日志。

但这导致了我的下一个问题。 是否可以查询与限制相反的值?例如:

我有105条日志,我需要保留100条日志。我可以先查询除100外的所有内容吗?或者是咬住子弹并进行105次读取然后删除5次的唯一方法。

2 个答案:

答案 0 :(得分:4)

为什么不只保留它们?您始终可以运行外部每周/每月cron作业,该作业调用https触发器以批量删除早于特定日期的日志。

日期,而currentDate是unixTimeStamp。

检索文档时,您可以使用where(date, "<=", currentDate).limit(x)

答案 1 :(得分:1)

每天或每周的工作听起来不错。

OrderBy和limit应该适用于查询。

it("should order and limit", () => {
    var logRef = db.collection("log");
    // [START order_and_limit]
    logRef.orderBy("date").limit(10)
    // [END order_and_limit]
 });

Firebase Query Snippets