如何在 Documentdb 中创建一个自动递增的列

Posted

技术标签:

【中文标题】如何在 Documentdb 中创建一个自动递增的列【英文标题】:How to create a auto incremented column in 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);

【问题讨论】:

不完全是,我会编辑我的问题:) Do we have Identity Column in DocumentDB的可能重复 感谢 Abdel Raoof :) 【参考方案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/…

以上是关于如何在 Documentdb 中创建一个自动递增的列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PostgreSQL 在 DBeaver 中创建自动递增/SERIAL id 列?

如何使用 EF 核心在 SQLite 中创建自动增量列?

如何使用 EF 核心在 SQLite 中创建自动增量列?

如何在 spark 数据框中创建唯一的自动生成的 Id 列

如何在 Python 中创建递增的文件名?

如何在 PL/SQL 中创建一个以时间段递增的循环