Python-Ева. Объявите массив идентификаторов объектов в схеме Cerberus
Я занимаюсь разработкой API с помощью Python-Eve, и мне нужно создать объявление схемы MongoDB с использованием Cerberus для выражения документа, подобного приведенному ниже:
{
name : 'John Smith',
type: 'home',
devices : [
ObjectID('1234'),
ObjectID('ABCD'),
ObjectID('D2AF'),
],
}
Я хотел бы знать, как я могу объявить схему Цербера, чтобы иметь массив ObjectID
, как это devices
ключ выше.
Я хотел бы иметь схему для массива ссылок на другие документы и, возможно, сделать их встраиваемыми, как это показано на примере схемы с одним элементом ниже, взятой из документации Python-Eve:
{
'author': {
'type': 'objectid',
'data_relation': {
'resource': 'users',
'field': '_id',
'embeddable': True
},
},
}
Я подозреваю, что для этого потребуется пользовательский тип, но я до сих пор не понял, как это сделать.
1 ответ
Решение
ОК, нашел, как выразить устройства:
{
'devices': {
'type': 'list',
'schema': {
'type': 'objectid',
'data_relation': {
'resource': 'devices',
'field': '_id',
'embeddable': True
},
}
}
}
Отличная документация Цербера имеет это.