hi, everyone
i have problem with my query, i want select with 2 ARRAY_AGG in 1 query. i have 4 document like this.
province
{
_id : 1,
_type : Province,
name : DKI jakarta
}
city
{
_id : 1,
_type : City,
name : jakarta,
province : {
$ref : 1
}
}
school
{
_id : 1,
_type : School
name : pahut,
city : {
$ref : 1
}
}
student
{
_id : 1,
_type : Student,
name : bryan,
school : {
$ref : 1
}
}
{
_id : 2,
_type : Student,
name : cindy,
school : {
$ref : 1
}
}
so i want join thatâs all, and count the students, so i want thatâs like this :
{
province_id : 1,
name : DKI jakarta,
city : {
city_id : 1,
name : jakarta,
school : {
shcool_id : 1,
name : pahut,
total_students : 2
}
}
}
i have try query like this:
queryPrep = âSELECT d.province_id, d.name, ARRAY_AGG({d.city_id, d.nm, ARRAY_AGG({d.school_id, d.nms, d.total}) AS school FROM (â
queryPrep += âSELECT t.province_id, t.name, t.city_id, t.nm, t.school_id, t.nms, COUNT(t.student_id) AS total FROM (â
queryPrep += "select p._id province_id, p.name, m._id city_id, m.name nm, mc._id school_id, mc.name nms, dd._id student_id "
queryPrep += "from " + skCbBucket + "
p "
queryPrep += "join " + skCbBucket + "
m on key m.province.$ref
for p "
queryPrep += "join " + skCbBucket + "
mc on key mc.city.$ref
for m "
queryPrep += "join " + skCbBucket + "
dd on key dd.school.$ref
for mc "
queryPrep += "where p._type=âProvinceâ "
queryPrep += "and (m._type=âCityâ or m is missing) "
queryPrep += "and (mc._type=âSchoolâ or mc is missing) "
queryPrep += "and (l._type=âStudentâ or mc is missing) "
queryPrep += "UNION ALL "
queryPrep += "select p._id province_id, p.name "
queryPrep += "from " + skCbBucket + "
as p "
queryPrep += "WHERE p._type = âProvinceâ "
queryPrep += ") as t "
queryPrep += "GROUP BY t.province_id, t.name, t.city_id, t.nm, t.school_id, t.nms) AS d "
queryPrep += "GROUP BY d.province_id, d.name, d.city_id, d.school_id) AS f "
queryPrep += âGROUP BY f.province_id, f.name;â
and i got an error, so what must i do ? please help me
Thanks