我有一个couchDB数据库,它有几个不同的文档“类型”,它们都与主“类型”有关。couchDB排序复杂键
在普通博客/后例子,主要类型是博客文章,和其他人的意见(虽然有3种不同类型的注释。
所有类型的对他们有日期,但是,我想按日期博客文章进行排序,但返回所有从评论中的数据,以及我可以写它产生的密钥像这样的EMIT:
[date, postID, docTypeNumber]
其中docTypeNumber为1后和> 1不同评论文件类型
例如:
["2013-03-01", 101, 1]
[null, 101, 2]
[null, 101, 2]
[null, 101, 3]
["2013-03-02", 101, 1]
[null, 102, 2]
[null, 102, 3]
当然,如果我发出这个,所有的nulls得到排序在一起。有没有办法忽略空值,并将它们按数组中的第二项进行分组,但如果它不为空,则按第一项对它们进行排序?
或者,我是否必须获取所有文档以记录发布日期以便进行排序?
我不想使用列表,他们太慢了,我正在处理一个潜在的大数据集。
感谢您的回复。我想我在这里错过了一些东西。有了第一个选项,它不是按数组中的第一项进行排序吗?如果不是,它如何知道通过postID排序?我对你的回答感到非常兴奋,如果你是对的,couchDB对我来说更好。 – ddouglascarr 2013-03-07 09:48:52
我觉得我更喜欢第一种形式的第二种形式。但是,第一个仍然有效。您对帖子的视图整理实际上是'[101,x]'。您对日期的查看整理将会沿着'[2013-03-07,x,x]'的方向进行。你也可以按日期和帖子查询'[2012-03-07,101,x]'。请注意,这两个视图取决于postID和日期从不具有相同值的事实。 – 2013-03-07 22:13:12
查询视图时,两个选项都不起作用。它从数组的前面进行排序,因此它将帖子的postID与评论的日期进行比较。列出您的所有帖子ID,然后列出您的所有帖子。有没有一个选项可以在查询视图时使其不同? – ddouglascarr 2013-03-08 21:47:35