I have a bucket called A in which i have all documents which includes a date in each document . I want to separate this documents into different bucket with yearly wise .
“sDate”: “2020-09-05 22:19:22” this is the parameter in which i have with different years in my documents .
Please help me what index required and which select query required to fetch documents on year wise.
CREATE INDEX ix1 ON source(sDate);
INSERT INTO target(key _k, value _v)
SELECT META().id _k, _v FROM source AS s WHERE sDate LIKE "2020%";
OR
OR
CREATE INDEX ix1 ON default(SUBSTR(sDate,0,4) );
SELECT DISTINCT RAW SUBSTR(sDate,0,4)
FROM default WHERE SUBSTR(sDate,0,4) IS NOT NULL;
SELECT RAW SUBSTR(sDate,0,4)
FROM default WHERE SUBSTR(sDate,0,4) IS NOT NULL
GROUP BY SUBSTR(sDate,0,4);
The each value
SELECT RAW META().id FROM source AS s WHERE SUBSTR(sDate,0,4) = $val;
Then use SDK get document insert into right collection
OR
CREATE INDEX ix1 ON default(SUBSTR(sDate,0,4) );
SELECT META().id, SUBSTR(sDate,0,4) AS year
FROM default
WHERE SUBSTR(sDate,0,4) >= ""
ORDER BY SUBSTR(sDate,0,4);
You get document keys sorted by year.
Get document from SDK, When year is different from previous year change your
target collection and write there.
One pass all data copied