2017-03-05 42 views
1

我想獲取documentdb集合中的最後一個文檔。但我有2個問題。如何使用node.js獲取documentdb集合中的最後一個文檔

第一個問題是當我在循環中創建文檔時,它不會以相同的順序創建文檔,因此數據庫中的最後一個文檔不是數組中的最後一個元素。我用slice()函數修復了這個問題。我拿出數組的最後一個元素,並用setTimeout()函數創建一個文檔。它的工作原理,但有沒有更好的辦法呢?

第二個問題正在數據庫中查詢。我不想查詢數據庫中的所有文檔。因此,我想使用LAST() SQL函數,但它會給出錯誤'LAST'不是公認的內置函數名稱。。我可以很好地使用這種說法。

SELECT TOP 1 CustomerName FROM Customers 
ORDER BY CustomerID DESC; 

但是查詢所有文件有用嗎?我的意思是說如果有10,000個文件或更多是否是一個好方法?或者有沒有辦法在不查詢所有文檔的情況下獲取最後一個文檔?

回答

0

第一:最後文件確實沒有概念。如果您在查詢中添加了ORDER BY,那麼您可以像第二個示例中發佈的那樣獲取TOP N。沒有排序順序,沒有「最後一個」的概念(或者甚至是「第一個」) - 對於無序查詢,TOP 1理論上可以返回任何文檔 - 您只需從結果集中的第一個文檔中取消)。

至於查詢所有文件:你是不是查詢所有文件。由於默認情況下所有屬性都已編入索引,因此您只需根據CustomerID屬性排序順序獲取第一個文檔。數據庫引擎沒有理由對此類查詢執行收集掃描。

相關問題