YUI3 YQL使用限制和排序在一起

时间:2010-12-30 19:39:29

标签: javascript json yui yql yui3

我有一个YQL查询,它结合了一堆RSS提要,然后按日期对它们进行排序。它工作得很好,但我希望能够对结果进行分页。

这是我的问题:

select channel.item.title, channel.item.link, channel.item.pubDate, channel.item.description(0) from xml where url in(... urls go here ...) | unique(field='channel.item.link') | sort(field='channel.item.pubDate', descending='true')

问题是yql在排序过滤器之前执行LIMIT和OFFSET。因此,如果我有一个LIMIT 5,我最终只得到列表中第一个RSS提要的前5个项目...而不是我所有组合提要的前5个项目。

是否有链接查询的方法,因此我可以获取所有查询以对所有结果进行排序,并调用限制我的结果的查询。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

使用truncate(count = 5)获取已过滤Feed的前5项。

select channel.item.title, channel.item.link, channel.item.pubDate, channel.item.description(0) from xml where url in(... urls go here ...) | unique(field='channel.item.link') | sort(field='channel.item.pubDate', descending='true') | truncate(count=5)

或者反向排序的tail()方法(上面发布)也可以。

请参阅http://developer.yahoo.com/yql/guide/sorting.html

答案 1 :(得分:0)

如何在另一个方向上使用tail()和另外sort()呢?

这样的事情:

select channel.item.title, channel.item.link, channel.item.pubDate, channel.item.description(0) from xml where url in(... urls go here ...) | unique(field='channel.item.link') | sort(field='channel.item.pubDate', descending='false') | tail(count=5)

我没试过这个,我不确定你需要哪种排序,但你肯定可以使用tail()。显然没有等效的head()功能,因此请确保最新的项目在排序后结束。

有关详细信息,请参阅 http://developer.yahoo.com/yql/guide/sorting.html