couchdb 按值、限制和按时间顺序获取

Posted

技术标签:

【中文标题】couchdb 按值、限制和按时间顺序获取【英文标题】:couchdb get by value, limit, and order by time 【发布时间】:2012-03-10 08:40:48 【问题描述】:

我是 CouchDB 的新手,我正在尝试获取应用中用户的最后 50 个最新条目。 我创建了一个视图,用于提取条目的文档,我可以使用 key 参数仅获取特定用户的文档,并使用限制查询仅获取 50 个条目。

但是,我想通过“时间戳”字段(存储输入时的新 Date().getTime())对文档进行排序,以确保我只获得最新的条目.这在 CouchDB 中是否可行,如果可以,如何实现?

【问题讨论】:

【参考方案1】:

您可以通过发出更复杂的键(例如 [用户名,日期时间] 形式的数组)来实现这一点(至少在您的数据中没有任何未来日期的情况下)。 然后创建一个视图,使用 startkey 提取文档,例如 ['johndoe',1331388874195] 以降序排列,限制为 50。日期显然应该是当前日期。 CouchDB 的collation 将确保结果首先按用户排序,然后按日期排序。

【讨论】:

谢谢!效果很好:) 我不知道你可以使用数组作为键,知道非常有用!再次感谢您! oops,注意到一个小错误。您还需要包含 ['johndoe', 0] 的 endkey,以防止 couchdb 从以 'johndoe' 开头的用户名(如 'johndoe59)返回帖子'。

以上是关于couchdb 按值、限制和按时间顺序获取的主要内容,如果未能解决你的问题,请参考以下文章

按值和按引用差异的函数模板

Java:递归和按值传递

CouchDB - CouchApp 的任何替代品?

我是不是正确理解了 C 中的按值传递和按引用传递?

按引用传递然后复制和按值传递在功能上是不是不同?

Java的按值传递和按引用传递解说