aql - How to get sub document from complex JSON - ArangoDB -
i need events sub documents (array of events) contain _playerid
= somevalue
, can done aql in arangodb?
sample doc:
{ "livescore": { "league": [ { "match": { "home": { "_goals": "2", "_id": "2337787", "_name": "defensa y justicia" }, "away": { "_goals": "3", "_id": "2337780", "_name": "colon santa fe" }, "events": { "event": [ { "_assist": "", "_assistid": "", "_extra_min": "", "_id": "22295244", "_minute": "22", "_player": "j. tejera", "_playerid": "2405930", "_result": "", "_team": "home", "_type": "yellowcard" } ] }, "ht": { "_score": "[1-1]" }, "ft": { "_score": "[2-3]" }, "_alternate_id": "4100536", "_alternate_id_2": "4328174", "_commentary": "true", "_date": "12.05.2015", "_id": "4218094", "_static_id": "12051523377872337780", "_status": "ft", "_time": "00:10" }, "_country": "argentina", "_name": "argentina: primera division", "_cup": "false", "_id": "2914", "_sub_id": "29144" }, { "match": [ { "home": { "_goals": "?", "_id": "2337758", "_name": "berazategui" }, "away": { "_goals": "?", "_id": "2337826", "_name": "general lamadrid" }, "events": "", "ht": { "_score": "" }, "_alternate_id": "4106986", "_alternate_id_2": "4328905", "_commentary": "false", "_date": "12.05.2015", "_id": "4224541", "_static_id": "12051523377582337826", "_status": "18:00", "_time": "18:00" }, { "home": { "_goals": "?", "_id": "2337842", "_name": "justo josé de urquiza" }, "away": { "_goals": "?", "_id": "2337850", "_name": "laferrere" }, "events": "", "ht": { "_score": "" }, "_alternate_id": "4106988", "_alternate_id_2": "4329005", "_commentary": "false", "_date": "12.05.2015", "_id": "4224543", "_static_id": "12051523378422337850", "_status": "18:00", "_time": "18:00" } ], "_country": "argentina", "_name": "argentina: primera c metropolitana", "_cup": "false", "_id": "2912", "_sub_id": "29120" } ], "_updated": "12.05.2015 06:41:07", "_sport": "soccer" } }
i think yes. tried test data:
for d in yourdata let leaguelist = d.livescore.league league in leaguelist let eventlist = league.match.events filter !is_null(eventlist) let eventlist2 = eventlist.event event in eventlist2 filter event._playerid == "2405930" return event
of course not sure if understand data modell / problem correctly, maybe example helps you.
Comments
Post a Comment