我将数据存储timestamps为 ID。where当数据通过查询子句时,我只需要获取新数据。数据在名为 的键中也具有相同的时间戳day。代码是用 Golang 编写的,但它只从函数第一次调用时获取带有静态时间戳的数据。如何通过查询获取最新数据moves?
询问
snapshots := org.firestoreClient.Collection(
fmt.Sprintf("metrics/%v/%v", "id", "data-collectioin"),
).Where("day", ">=", time.Now().UTC().Add(time.Duration(-7) * time.Hour * 24))
.Snapshots(context.Background())
// Listening loop does not terminate
for {
snapshot, err := snapshots.Next()
if err == iterator.Done {
break
}
if err != nil {
log.Println(err)
continue
}
var decodingErr error
// Doc Iterating loop terminates at the last document
for {
store, vErr := snapshot.Documents.Next()
if vErr != nil {
break
}
// unmarshal data to result struct
// ....
// check for old data
if result.Day.UTC().Before(time.Now().UTC().Add(time.Duration(-7) * time.Hour * 24)) {
log.Println("has old data")
continue
}
// save to cache
addToSlice()
}
saveToCache(slice)
}
我希望每 24 小时都有新数据,之后运行此查询的服务器将获得新数据。并将数据保存到缓存中
也许我的理解是错误的,但是在此查询运行 14 天后,缓存存储区将包含 14 天前的数据,而不仅仅是过去 7 天的数据。我只想拥有过去 7 天的数据。跳过旧数据但数据集很大,if (old-data) continue并且考虑到我只需要通过初始查询(绝对)的条目,这将是很多跳过我不需要的数据
Output
day 0:
day 1:
has old data
day 2:
has old data
has old data
day 3:
has old data
has old data
has old data
万千封印
心有法竹
相关分类