Прежде всего: Не выдавать документ в качестве значения ... вы можете использовать &include_docs=true
, если вам нужны данные в наборах результатов.
Второе: Предполагается, что в вашем документе содержится более одного проекта:
Имеет ли смысл запрашивать проекты на день без Месяца?Если нет, вы можете использовать emit([doc.project,'monthday',doc.month,doc.day],1)
, тогда вы можете запросить все проекты за месяц:
startkey=["project1","monthday",3]&endkey=["project1","monthday",3,{}]
день месяца:
key=["project1","monthday",3,9]
Если вы используете простойФункция limit-(_sum) вы можете спросить, сколько дней у проекта (+ в месяце):
startkey=["project1","monthday"]&endkey=["project1","monthday",{}]&group_level=3
...
"key":["project1","monthday",2],"value:1), // 1 Day in month 2
"key":["project1","monthday",3],"value:2) // 2 Days in month 3
с использованием group_level= 4 (то же самое, что и lower = false):
"key":["project1","monthday",2,20],"value:1),
"key":["project1","monthday",2,21],"value:1),
"key":["project1","monthday",3,1],"value:1),
конечно, вы можете объединить последний случай с & include_docs = true, чтобы получить данные
Третий:
Можно выдавать более одного значения на документ ... Конечно, вы можете разделить эмиссии в разные представления, поэтому вам не нужен второй ключ.Попытайтесь выяснить, какая информация принадлежит друг другу и бесполезна без других (например, день / месяц, человек / название работы?)
Четвертый:
это не дорого, добавляяданные .. просто вид здания; -)