我正在使用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
},
},
}
我怀疑这需要一个自定义类型,但我仍然没有想到如何做到这一点。
答案 0 :(得分:4)
好的,找到了如何表达设备:
{
'devices': {
'type': 'list',
'schema': {
'type': 'objectid',
'data_relation': {
'resource': 'devices',
'field': '_id',
'embeddable': True
},
}
}
}
优秀的Cerberus documentation拥有它。