通过couchbase查询获取View的最后一行

时间:2014-09-08 11:07:33

标签: python rows couchbase

我有一个查询,它返回一个Viewobject,其中包含我想要处理的所有条目。我知道我可以迭代这个视图对象,这样我就可以将单个条目用于我的目的。

现在我想只提取第一行和最后一行。第一行没有问题,因为我可以在第一项之后迭代并打破循环。

现在我的问题是,如何从视图中获取最后一个元素。

我试过:

                for row in result_rows:
                    rowvalue = row[3].value
                    diagdata = rowvalue[models.DIAGDATA]
                    if models.ODOMETER in diagdata:
                        start_mileage = diagdata[models.ODOMETER]
                        start_mileage_found = True
                    break

                row = result_rows[len(result_rows)]
                rowvalue = row[3].value
                diagdata = rowvalue[models.DIAGDATA]
                if models.ODOMETER in diagdata:
                    end_mileage = diagdata[models.ODOMETER]
                    end_mileage_found = True

第二个值我显然不会得到,因为视图既没有长度也不能通过索引访问行。有谁知道如何获得最后一个元素?

1 个答案:

答案 0 :(得分:1)

您可以使用descending=True选项运行另一个请求,以便服务器以相反的顺序传输结果。

或者您可以将迭代器转换为基本相同的数组,迭代所有值。我不是蟒蛇专家,但似乎list(result_rows)会为你做这件事。当你正在做len(...)时,它可能会隐含地为你做这件事。有rows_returned方法可以获取行数而无需将其列入列表。