Это не похоже на вариант использования графика.Существует только три типа аутентификации (учетные данные, Facebook, Google), и информация об аутентификации не передается нескольким пользователям.Таким образом, я бы включил данные аутентификации в пользовательский документ:
{
"_id": "user/1234",
"auth": {
"credentials": { ... },
"facebook": { ... },
"google": { ... }
}
}
Вложенные атрибуты являются необязательными, например, если нет никаких данных для аутентификации Google, просто оставьте атрибут "google" в стороне.
К путям атрибутов очень легко получить доступ, например, auth.credentials
.При необходимости вы также можете создавать индексы для податрибутов.С массивами есть некоторые ограничения в этом отношении, и немного сложнее получить определенную информацию об аутентификации из массива (если вы не определите фиксированный порядок, то есть учетные данные в индексе массива 0 и т. Д., Но ваша структура данных не будет 'больше не будет описывать себя).
Это также наиболее эффективное решение, потому что это один документ, считываемый для получения информации о пользователе + аутентификации.