我正在设计我的后端.我有一个json数组/队列/东西,我只需要任何最多2周的数据,这是连续附加到.我只想从这个"队列"中删除,而不是从容器文档中删除.我可以使用TTL,还是TTL只能用于整个文档?
有一个更好的方法吗?我应该将它们作为单独的文档存储在每日或每小时的数组中吗?
运行couchbase 2.2.
Couchbase中的TTL仅适用于整个文档,不可能使文档的子集失效.就像你说的那样,你可以随时拥有不同到期时间的单独文档,在这些文档中你有一个类型,日期,然后是数据数组作为元素.
然后使用这样的视图:
function (doc, meta) {
if(meta.type == "json") {
if(doc.type == "ordered_data") {
if(doc.date) {
emit(dateToArray(doc.date));
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以按日期排序所有相关数据(标记降序设置为true),它还允许您的应用程序通过传入一个或多个键来选择特定日期.即选择日期范围为2天,1周等.当文档到期时,它将在更新时从视图中删除(根据您的陈旧参数加上操作一秒/时间而变化).
然后,您可以在应用程序层执行所需的任何连接或额外处理.还有其他选择,但对我来说,这将是解决问题的最明智的方法,任何问题只是评论,我们会再试一次.
Ps你的阵列有多大?如果它们非常大,那么也许你需要看一个不同的技术或方法来解决问题.
| 归档时间: |
|
| 查看次数: |
456 次 |
| 最近记录: |