Couchbase N1QL查询每周范围

问题描述

我正在尝试根据每周范围查询

文档结构:

{
    type: "city",createdDate: "2020-08-15T12:00:00"
    //other fields
}

查询统计每周记录。

输出

date         count
2020-08-01  20
2020-08-08  20

它应该在当前月份每周显示一次

解决方法

结帐日期功能https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/datefun.html

SELECT date,COUNT(1) AS cnt
FROM mybucket AS d
LET date = DATE_PART_STR(DATE_ADD_STR(d.createdDate,-IMOD(DATE_PART_STR(d.createdDate,"day")-1,7)),"1111-11-11")
WHERE ...........
GROUP BY date;

注意:每月的最后一周是不完整的。由于没有相等的天数,每个月的每周分组很复杂。上方链接(iso_week,周)中的Checkout提取日期成分