首页 文章

DocumentDB中主键的最佳实践

提问于
浏览
3

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

由于documentDB中没有可用的自动增量,因此有任何好方法可以解决此问题 .

我希望得到最佳实践建议的答案 . 谢谢

3 回答

  • 0

    我有一个文档类,其主键名为PrimaryKey

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

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

  • 4

    我见过的最常见的做法是在创建要添加/插入的新文档时简单地使用分配的GUID . 您也可以指定Indexing Policy . 这有助于支持您需要根据这些文档中的其他属性查找文档的情况 .

    如果您通常确切地知道要检索哪个文档,那么创建自定义复合键也很有用 . 在这种情况下,它取决于单个应用程序,以确定创建复合值的最佳方法 .

  • 4

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

相关问题