如何使用 node.js 获取 documentdb 集合中的最后一个文档
How to get the last document in a documentdb collection with node.js
我想获取 een documentdb 集合中的最后一个文档。但我有两个问题。
第一个问题 是当我在循环中创建文档时,它不会以相同的顺序创建文档,因此数据库中的最后一个文档不是数组中的最后一个元素.我用 slice()
函数解决了这个问题。我取出数组的最后一个元素并使用 setTimeout()
函数创建一个文档。它有效,但有更好的方法吗?
第二个问题在数据库中查询。我不想查询数据库中的所有文档。因此我想使用 LAST()
SQL 函数,但它给出错误 'LAST' is not a recognized built-in function name.。我可以很好地使用这个语句。
SELECT TOP 1 CustomerName FROM Customers
ORDER BY CustomerID DESC;
但是查询所有文档有用吗?我的意思是,如果有 10.000 个或更多文件,这是一个好方法吗?或者有什么办法可以不用查询所有文档就得到最后一个文档吗?
首先:确实没有 last 文档的概念。如果您在查询中添加 ORDER BY
,那么您可以像在第二个示例中发布的那样获取 TOP N
。没有排序顺序,就没有 "last" 的概念(甚至 "first" 就此而言 - TOP 1
理论上无序查询可以 return any 文档 - 您只需浏览结果集中的第一个文档。
至于查询所有文档:您不是查询所有文档。由于默认情况下所有属性都已编入索引,因此您只是根据 CustomerID
属性 排序顺序获取第一个文档。数据库引擎没有理由为这种类型的查询进行集合扫描。
我想获取 een documentdb 集合中的最后一个文档。但我有两个问题。
第一个问题 是当我在循环中创建文档时,它不会以相同的顺序创建文档,因此数据库中的最后一个文档不是数组中的最后一个元素.我用 slice()
函数解决了这个问题。我取出数组的最后一个元素并使用 setTimeout()
函数创建一个文档。它有效,但有更好的方法吗?
第二个问题在数据库中查询。我不想查询数据库中的所有文档。因此我想使用 LAST()
SQL 函数,但它给出错误 'LAST' is not a recognized built-in function name.。我可以很好地使用这个语句。
SELECT TOP 1 CustomerName FROM Customers
ORDER BY CustomerID DESC;
但是查询所有文档有用吗?我的意思是,如果有 10.000 个或更多文件,这是一个好方法吗?或者有什么办法可以不用查询所有文档就得到最后一个文档吗?
首先:确实没有 last 文档的概念。如果您在查询中添加 ORDER BY
,那么您可以像在第二个示例中发布的那样获取 TOP N
。没有排序顺序,就没有 "last" 的概念(甚至 "first" 就此而言 - TOP 1
理论上无序查询可以 return any 文档 - 您只需浏览结果集中的第一个文档。
至于查询所有文档:您不是查询所有文档。由于默认情况下所有属性都已编入索引,因此您只是根据 CustomerID
属性 排序顺序获取第一个文档。数据库引擎没有理由为这种类型的查询进行集合扫描。