如何使用node.js获取documentdb集合中的最后一个文档

时间:2017-03-05 08:23:15

标签: javascript node.js azure-cosmosdb

我想获取een documentdb集合中的最后一个文档。但我有两个问题。

第一个问题是当我在循环中创建文档时,它不会以相同的顺序创建文档,因此数据库中的最后一个文档不是数组中的最后一个元素。我用slice()函数修复了它。我取出数组的最后一个元素,并使用setTimeout()函数创建一个文档。它有效,但还有更好的方法吗?

第二个问题正在数据库中查询。我不想查询数据库中的所有文档。因此,我想使用LAST() SQL函数,但它会出现错误' LAST'不是公认的内置函数名称。。我可以很好地使用这个陈述。

SELECT TOP 1 CustomerName FROM Customers
ORDER BY CustomerID DESC;

但查询所有文档有用吗?我的意思是,如果有10,000个文件或更多是一个好方法?或者有没有办法在不查询所有文档的情况下获取最后一个文档?

1 个答案:

答案 0 :(得分:1)

首先: last 文档的确没有概念。如果您在查询中添加了ORDER BY,那么您可以在第二个示例中发布TOP N。如果没有排序顺序,那么就没有" last" (或者甚至"首先"对于这个问题 - TOP 1对于无序查询理论上可以返回任何文档 - 您只需略去第一个结果集)。

至于查询所有文件:您查询所有文件。因为默认情况下,所有属性都已编制索引,因此您只需根据CustomerID属性排序顺序获取第一个文档。数据库引擎没有理由对此类查询进行集合扫描。