我正在使用Python-Eve开发API,我需要使用Cerberus创建一个MongoDB模式声明来表达如下文档:
{ name : 'John Smith', type: 'home', devices : [ ObjectID('1234'), ObjectID('ABCD'), ObjectID('D2AF'), ], }
我想知道如何声明Cerberus模式具有一个数组ObjectID
,如devices
上面的键。
我想要一个对其他文档的引用数组的架构,并且可能使它们可嵌入,就像下面的单元素架构示例(取自Python-Eve 文档):
{ 'author': { 'type': 'objectid', 'data_relation': { 'resource': 'users', 'field': '_id', 'embeddable': True }, }, }
我怀疑这将需要自定义类型,但我仍然没有弄清楚该如何做。
OK,找到了如何表达设备的方法:
{ 'devices': { 'type': 'list', 'schema': { 'type': 'objectid', 'data_relation': { 'resource': 'devices', 'field': '_id', 'embeddable': True }, } } }
出色的Cerberus 文档提供了它。