【问题标题】:How to create a auto incremented column in Documentdb如何在 Documentdb 中创建一个自动递增的列
【发布时间】:2015-02-26 07:00:41
【问题描述】:

我想在 azure 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);

【问题讨论】:

标签: c# auto-increment azure-cosmosdb


【解决方案1】:

DocumentDB 不包括开箱即用的自动增量功能。

正如 Gaurav 在 Do we have Identity Column in DocumentDB 中提到的,id 字段的特殊之处在于,如果应用程序未提供值 - DocumentDB 将自动分配 GUID。

如果您需要自动增量功能,一种可能的解决方案是将计数器存储为文档并利用 DocumentDB's triggers 填充您的字段并更新计数器。

【讨论】:

  • 带有触发器和计数器文档的解决方案只能在单个集合的边界内工作。如果您想稍后横向扩展并将数据分区到多个集合中,这将变得很棘手。在考虑这个解决方案之前应该考虑一下。当然,在单个集合中,aliuy 的解决方案是可以的。
  • 似乎无法访问触发器内的集合对象,因此很遗憾这不起作用。
  • 您可以通过getContext().getCollection() 访问触发器内的集合对象。这是一个示例:github.com/Azure/azure-documentdb-js-server/blob/master/samples/…
猜你喜欢
  • 1970-01-01
  • 2019-12-29
  • 2011-03-08
  • 2023-03-26
  • 1970-01-01
  • 2023-04-01
  • 2015-06-06
  • 1970-01-01
相关资源
最近更新 更多