Поиск MongoDB только для детей - PullRequest
0 голосов
/ 05 августа 2020

Сейчас я пытаюсь создать небольшую программу, которая требует аутентификации пользователя. Я использую MongoDB с официальным драйвером в C#. Поскольку у каждого пользователя есть родительская организация, я построил такую ​​иерархию:

  • Организация
    • Пользователь
      • Электронная почта
      • Пароль

Теперь, для проверки моего адреса электронной почты / пароля, мне нужно «l oop через все организации, проверить, соответствуют ли адрес электронной почты и пароль пользователей исправьте и выберите этого пользователя ". Я буквально хочу получить обратно только пользователя.

Мои подходы до сих пор возвращали организацию со ВСЕМИ пользователями, что стало довольно беспорядочным. Я также хочу, чтобы мой метод был достаточно эффективным, есть идеи?

Я пробовал подход Linq, но оказалось, что он не работает из-за ошибок типа: (хотя, вероятно, наиболее понятный способ)

var q = from Organization in _orgs.AsQueryable()
from User in Organization.Users
select new User()
{
    EMailAddress = EmailPasswordCombo.Item1,
    Password = hashed
};

1 Ответ

0 голосов
/ 05 августа 2020

Я рекомендую вам разделить ваши коллекции и добавить OrganizationId в коллекцию User. После этого вы можете легко выбрать всех пользователей или одного, который вам нужен (например, по электронной почте). И конечно, это будет намного быстрее, чем l oop, через все организации и пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...