2014-12-30 47 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 –