如何更改单个文档值的架构类型

how to change schema type for single document value

我想将特定用户的默认类型从 dict 更改为 string。

DOMAIN = {
       'item': {
           'schema': {
               'profile':{
                   'type': 'dict'
                   },
               'username': {
                   'type': 'string'
                   }
               }
       }
   }

假设如果我收到来自 x 的请求,用户类型不应更改。如果我收到来自 y 的请求,用户类型应该从 dict 更改为 string。如何在不影响其他资源的情况下更改特定项目资源。

TIA。

您最好的方法可能是设置两个不同的 API 端点,一个用于 X 类型的用户,另一个用于 Y 类型的用户。两个端点将使用相同的底层数据源(相同的数据库集合更新中)。您可以通过为端点设置 datasource 来实现这一点,如下所示:

itemx = {
    'url': 'endpoint_1',
    'datasource': {
        'source': 'people',           # actual DB collection consumed by the endpoint
        'filter': {'usertype': 'x'}   # optional
        'projection': {'username': 1} # optional
    },
    'schema': {...}                   # here you set username to dict, or string
}

冲洗并重复第二个端点。有关详细信息,请参阅 docs