Запрос / фильтрация атрибута типа массив в PoucheDB/ Hoodie JS

Я новичок в NoSql / Hoodie JS / PouchDB и поэтому я пытаюсь найти лучший (самый эффективный способ) для обработки моих данных. Я пытаюсь сохранить некоторые данные "сотрудников" и их отпуск. Что-то вроде этого:

{
    firstName: "Test",
    lastName: "User",
    vacations:  [
                    {start:"2018/03/02", end:"2018/03/03"},
                    {start:"2018/04/04", end:"2018/04/05"},
                    ...
                ]
}

Таким образом, мой сотрудник - это "документ" с точки зрения NoSql, но отпускный список вызывает у меня некоторые головные боли, потому что я думаю, что этот список будет расти, но в большинстве случаев мне будут нужны только данные текущей недели или месяца.

Итак, мои мысли:

  • Можно ли создать представление или запрос, который возвращает сотрудников и только элементы отпуска текущего месяца или года?

  • Или я должен просто запросить все и отфильтровать позже в пользовательском интерфейсе?

  • Или это дизайн данных плохая идея и в любом случае закончится кошмаром.

Чтобы вы посоветовали? Большое спасибо и всего наилучшего.

1 ответ

Есть много способов сделать это. Что я обычно делаю в вашем случае: - создайте тип документа для сотрудника (как вы это сделали) и другой для отпуска, где документ отпуска имеет идентификатор сотрудника. вариант а: в сотруднике вы можете сохранить массив отпусков, но в этом случае вам придется его соответствующим образом обновить. Вариант б: вы можете создать вид всех отпусков по идентификатору. Я бы предпочел это.

Другие вопросы по тегам