#arangodb
#arangodb
Вопрос:
Я использую проверку схемы ArangoDB, выпущенную в версии 3.7. Проверка схемы происходит, как и ожидалось, для коллекций документов. Но для коллекций ребер возникает следующая проблема.
- Требование к краю: у края должно быть либо свойство id, либо вообще никаких свойств (следовательно, требуемый ключ не используется), и никаких других свойств (следовательно, для additionalProperties установлено значение false).
Я использовал следующую схему и экземпляр ребра. Но следующий экземпляр ребра не может быть создан, поскольку проверка схемы завершается неудачно.
Используемая схема:
{
"message": "Schema validation error",
"level": "strict",
"rule": {
"properties": {
"id": {
"type": "string"
}
},
"additionalProperties": false
}
}
Попытка создания экземпляра ребра с использованием веб-интерфейса ArangoDB :
- _from: DocCollection1 /t1
- _to: DocCollection2 /t2
- _key: e1
- Тело документа: {}
Ребро может быть создано, если я изменю дополнительные свойства на true, но это также позволяет создавать ребра со свойствами с любым именем, которые мне не нужны.
Я искал в документации Arango и не могу понять, почему проверка схемы завершается неудачей для этого сценария в коллекциях ребер. Тот же сценарий отлично работает в коллекциях документов.
Среда: одиночный узел, версия v3.7.2, издание сообщества
Ответ №1:
Это была ошибка, которая была исправлена в 3.7.5:
https://github.com/arangodb/arangodb/issues/12778
https://github.com/arangodb/arangodb/pull/12967
К сожалению, для 3.7.4 и более ранних версий, похоже, нет обходного пути — добавление _from
явно в качестве атрибута не помогает, я полагаю, потому что это специальное поле, которое требует внутреннего перевода.