如何在couchbase bucket中获取最新文档?

如何在couchbase bucket中获取最新文档?,couchbase,couchbase-lite,couchbase-view,nosql,Couchbase,Couchbase Lite,Couchbase View,Nosql,我的couchbase db中有一个活动桶,我需要检索不同类型的最新文档,我最初的方法是: 文档格式:[id,{val.time,val.type,val.load}] 然后,我编写了不同的视图来映射特定的val.type,并使用reduce来获取最新的val.time,但是我遇到了视图不更新的问题(因为很明显,映射只在新的或更改的文档上调用,这种方法需要映射和缩减所有文档) 什么是Couchbase(NoSQL)数据库中基于时间的数据的最佳实践/方法?您可以通过以下简单视图按时间访问文档: 将

我的couchbase db中有一个活动桶,我需要检索不同类型的最新文档,我最初的方法是:

文档格式:[id,{val.time,val.type,val.load}]

然后,我编写了不同的视图来映射特定的val.type,并使用reduce来获取最新的val.time,但是我遇到了视图不更新的问题(因为很明显,映射只在新的或更改的文档上调用,这种方法需要映射和缩减所有文档)


什么是Couchbase(NoSQL)数据库中基于时间的数据的最佳实践/方法?

您可以通过以下简单视图按时间访问文档:

  • 将时间转换为整数值。例如使用
    parse()
    方法

  • 使用此整数值作为视图的键。然后可以访问第一个或最后一个文档

  • 如果您总是需要最后一个文档,那么否定时间值会更快,因此最大时间位于索引的开头


  • 您可以通过以下简单视图按时间访问文档:

  • 将时间转换为整数值。例如使用
    parse()
    方法

  • 使用此整数值作为视图的键。然后可以访问第一个或最后一个文档

  • 如果您总是需要最后一个文档,那么否定时间值会更快,因此最大时间位于索引的开头


  • 您可以通过以下简单视图按时间访问文档:

  • 将时间转换为整数值。例如使用
    parse()
    方法

  • 使用此整数值作为视图的键。然后可以访问第一个或最后一个文档

  • 如果您总是需要最后一个文档,那么否定时间值会更快,因此最大时间位于索引的开头


  • 您可以通过以下简单视图按时间访问文档:

  • 将时间转换为整数值。例如使用
    parse()
    方法

  • 使用此整数值作为视图的键。然后可以访问第一个或最后一个文档

  • 如果您总是需要最后一个文档,那么否定时间值会更快,因此最大时间位于索引的开头


  • 如果您使用的是开发设计文档,那么在bucket中添加新键可能不会对视图产生影响。由于只有bucket中的一个子集进入Map/Reduce管道,因此添加一个不进入该子集中的键不会触发对视图的更新


    在生产设计文档上对其进行评估(通过单击“发布”按钮),或者尝试添加更多键。

    如果您使用的是开发设计文档,则向bucket中添加新键可能对视图没有影响。由于只有bucket中的一个子集进入Map/Reduce管道,因此添加一个不进入该子集中的键不会触发对视图的更新


    在生产设计文档上对其进行评估(通过单击“发布”按钮),或者尝试添加更多键。

    如果您使用的是开发设计文档,则向bucket中添加新键可能对视图没有影响。由于只有bucket中的一个子集进入Map/Reduce管道,因此添加一个不进入该子集中的键不会触发对视图的更新


    在生产设计文档上对其进行评估(通过单击“发布”按钮),或者尝试添加更多键。

    如果您使用的是开发设计文档,则向bucket中添加新键可能对视图没有影响。由于只有bucket中的一个子集进入Map/Reduce管道,因此添加一个不进入该子集中的键不会触发对视图的更新


    要么在生产设计文档上对其进行评估(通过单击“发布”按钮),要么尝试添加更多键。

    感谢您的回答DHK,我认为主要问题是我的视图将适用于少数<3的文档,并且当我将文档添加到我的存储桶中时,视图不再更新。如果将stale=false,则表明我遇到了一个类型错误“无法读取null的属性X”。我的map函数(这里没有reduce)检查未定义的字段:map函数如下所示<代码>函数(doc,meta){if(doc.type==“任务管理器”&&doc.time){emit(parseInt(doc.time),doc);}。我完全迷路了。谢谢你的回答DHK,我想主要的问题是我的视图只适用于少数<3的文档,当我将文档添加到我的bucket中时,视图不再更新。如果将stale=false,则表明我遇到了一个类型错误“无法读取null的属性X”。我的map函数(这里没有reduce)检查未定义的字段:map函数如下所示<代码>函数(doc,meta){if(doc.type==“任务管理器”&&doc.time){emit(parseInt(doc.time),doc);}。我完全迷路了。谢谢你的回答DHK,我想主要的问题是我的视图只适用于少数<3的文档,当我将文档添加到我的bucket中时,视图不再更新。如果将stale=false,则表明我遇到了一个类型错误“无法读取null的属性X”。我的map函数(这里没有reduce)检查未定义的字段:map函数如下所示<代码>函数(doc,meta){if(doc.type==“任务管理器”&&doc.time){emit(parseInt(doc.time),doc);}。我完全迷路了。谢谢你的回答DHK,我想主要的问题是我的视图只适用于少数<3的文档,当我将文档添加到我的bucket中时,视图不再更新。如果将stale=false,则表明我遇到了一个类型错误“无法读取null的属性X”。我的map函数(此处没有reduce)是ch