Python的前夜。在Cerberus模式上声明一个Object ID数组

时间:2015-12-21 18:19:30

标签: mongodb eve cerberus

我正在使用Python-Eve开发API,我需要使用Cerberus创建一个MongoDB模式声明来表达如下文档:

{
    name : 'John Smith',
    type: 'home',
    devices : [
        ObjectID('1234'),
        ObjectID('ABCD'),
        ObjectID('D2AF'),
    ],
}

我想知道如何声明Cerberus架构有一个ObjectID数组,就像上面的devices键一样。

我想有一个针对其他文档的引用数组的模式,并且可能使它们可嵌入,如下面的单元素模式示例,取自Python-Eve documentation

{
     'author': {
         'type': 'objectid',
         'data_relation': {
             'resource': 'users',
             'field': '_id',
             'embeddable': True
         },
     },        
 }

我怀疑这需要一个自定义类型,但我仍然没有想到如何做到这一点。

1 个答案:

答案 0 :(得分:4)

好的,找到了如何表达设备:

{   
    'devices': {
        'type': 'list',
        'schema': {
            'type': 'objectid',
            'data_relation': {
                'resource': 'devices',
                'field': '_id',
                'embeddable': True
            },
        }
    }
}

优秀的Cerberus documentation拥有它。