2014-12-30 53 views
6

我想在azure documentdb中創建一個帶有自動增量列的文檔。如何在Documentdb中創建自動遞增列

這可能嗎?如果是,請指導我。

任何幫助將不勝感激。

Database db = CreateOrReadDocumentDb("EmployeeDb").Result; 
DocumentCollection dc = CreateOrReadDocumentCollection(db.SelfLink, "EmployeeDetails").Result; 
Employee emp = new Employee(); 
emp.Name="ABC"; 
emp.id="";//automatically generate a unique string 
emp.sal=10000; 
emp.exp =5; 
emp.index=0; // I want an auto increment column for emp with name index and want to store in azure document db 
client.CreateDocumentAsync(collectionLink, data); 
+0

不完全,我將編輯我的問題:)的 –

+0

可能重複[我們有在DocumentDB標識列(http://stackoverflow.com/questions/26701587/do-we-have-identity-column-in -documentdb) –

+0

感謝Abdel Raoof :) –

回答

6

DocumentDB不包括開箱即用的自動增量功能。

由於Gaurav在Do we have Identity Column in DocumentDB中提到,id字段的特殊之處在於,如果應用程序未提供值 - DocumentDB將自動分配GUID。

如果您需要自動遞增功能,一種可能的解決方案是將計數器存儲爲文檔,並利用DocumentDB's triggers填充您的字段並更新計數器。

+1

帶觸發器和計數器文檔的解決方案只能在單個集合的邊界內工作。如果您想稍後向外擴展並將數據分區到多個集合,這將變得棘手。在考慮這個解決方案之前,應該考慮一下。當然,在一個系列中,aliuy的解決方案很好。 –

+0

似乎沒有觸發器內的集合對象的訪問權限,所以這不幸的是不起作用。 – dwhieb

+0

您可以通過'getContext()。getCollection()'來訪問觸發器內的集合對象。這裏有一個例子:https://github.com/Azure/azure-documentdb-js-server/blob/master/samples/triggers/UpdateMetadata.js –