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