DocumentDB中主键的最佳实践

本文关键字:最佳 DocumentDB | 更新日期: 2023-09-27 18:05:24

我正在开发一个网站与azure DocumentDB。我需要创建唯一且短的主键。

由于在documentDB中没有可用的自动增量,是否有什么好的方法来处理这个问题

我期待最佳实践建议的答案。谢谢你

DocumentDB中主键的最佳实践

我所见过的最常见的做法是在创建要添加/插入的新文档时简单地使用分配的GUID。您还可以指定索引策略。这可以帮助您在需要根据这些文档中的其他属性查找文档的情况下提供支持。

如果您通常确切地知道要检索哪个文档,则创建自定义组合键也很有用。在这种情况下,由各个应用程序决定创建复合值的最佳方式。

我有一个文档类,它的主键命名为PrimaryKey

public class Document<T> : BaseDocument, IDocument<T>
    {
        [JsonProperty(PropertyName = "id")]
        public virtual T PrimaryKey { get; set; }
    }

由于文档db主键是id(小写强制),您可以用Newtonsoft的JSONProperty替换id。Json,它将自动与id名称中的PrimaryKey值进行序列化。

如果需要增量键、数字键和唯一键,可以使用以毫秒为单位的Javascript日期new Date().getTime()作为每个文档的唯一标识符。这样做的好处是,如果需要按范围搜索文档,可以将此属性配置为范围索引,并执行有效的范围搜索。根据您的应用程序,在同一毫秒内创建2个文档的可能性非常小。