Весь смысл базы данных No-Sql в том, что ее схема меньше, и структура может варьироваться от документа к другому, поэтому я не вижу здесь никаких проблем.
Я думаю, что вы спрашиваете, как вы должныразобраться с этим в бизнес-логике вашего приложения, поэтому вот мое предложение:
Вы можете сохранить автора как встроенный поддокумент, который всегда имеет поле с именем «type» (как перечисление значений: String,Человек, организация и т. Д.) И действовать соответствующим образом при получении данных.
Например, если автор является просто строкой, то документ будет выглядеть примерно так:
{
…,
“author”: {
“type”: “String”,
“text”: <text>
}
}
Если его тип Person, то:
{
…,
“author”: {
“type”: “Person”,
“first_name”: <first name>,
“last_name”: <last name>
}
}