NoSQL数据模型设计 - 特殊应用建模 - 数据版本

2020-10-02  本文已影响0人  李桐2000

本文为NoSQL数据模型设计系列的一部分。

此模式使用版本号记录文档结构的变动,方便应用程序针对不同版本的文档进行不同操作。

增加schema_version字段在文档中,并在第一次修改结构时,给其赋值2。以后每次结构变动,同时增加这个字段。应用程序读取schema_version字段,根据它的值做相应的操作。

例如下面的user文档初始版本为

// users collection

{
    "_id": "<ObjectId>",
    "galactic_id": 123,
    "name": "Anakin Skywalker",
    "phone": "503-555-0000",
}

增加更多字段,同时引入schema_version字段

// users collection

{
    "_id": "<ObjectId>",
    "galactic_id": 123,
    "name": "Darth Vader",
    "contact_method": {
        "work": "503-555-0210",
        "home": "503-555-0220",
        "twitter": "@realdarthvader",
        "skype": "AlwaysWithYou"
    },
    "schema_version": "2"
}

应用程序判断schema_version是否存在,如果不存在,通过phone字段获取电话。否则,则通过contract_method.work和contract_method.home获取电话。

此模式可用于下列场景

完整内容请查看NoSQL数据模型设计系列

上一篇 下一篇

猜你喜欢

热点阅读