2017-04-24 38 views
1

我嘗試從Azure DocumentDB數據庫接收所有文檔。我找到了表明我的問題的例子,但它不起作用。 https://github.com/Microsoft/azure-docs/blob/master/articles/documentdb/documentdb-sharding.md#create-queries-against-all-collections-in-the-database從數據庫Azure DocumentDB接收所有文檔

我的代碼(C#):

var client = new DocumentClient(new Uri(endPointUrl), authorizationKey); 
var database = await client.ReadDatabaseAsync(UriFactory.CreateDatabaseUri(DatabaseId)); 
var documents = client.CreateDocumentQuery(database.Resource.SelfLink).ToList(); 

CreateDocumentQuery例外:

消息:{ 「服務器無法解析URL」}; 錯誤:{{「code」:「NotFound」,「message」:「服務器無法解析URL」。 }};

那麼,我可以在一次查詢中從多個集合中接收文檔嗎?

回答

1

那麼,我可以在一次查詢中從多個集合中接收文檔嗎?

簡單的答案是否定的。你不能這樣做。

您需要做的是首先列出數據庫中的所有集合,然後分別從每個集合中獲取文檔。對於每個集合,您都需要執行單獨的查詢。

此外,請注意,如果集合中有超過1000個文檔,則單個請求將返回最多1000個文檔。在這種情況下,您將從服務中獲得延續令牌。您需要使用此延續標記重新發送查詢以獲取該集合中的下一組數據。你會重複這個過程直到時間服務返回你一個連續的令牌作爲迴應。缺少連續標記意味着來自集合的所有文檔都被提取。然後,您可以轉到數據庫中的下一個集合(如果您正在執行順序執行)。

+0

非常感謝您的全面迴應。所以這就像我想的,但我不確定通過GitHub的信息。 – Pyotreq

相關問題