簡體   English   中英

如何從復雜的JSON獲取子文檔-ArangoDB

[英]How to get sub document from complex JSON - ArangoDB

我需要將所有事件作為包含_playerid = somevalue子文檔(事件數組)來_playerid ,這可以通過ArangoDB中的AQL完成嗎?

樣本文檔:

{
    "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"
    }
}

我想是的。 我用您的測試數據進行了嘗試:

FOR d in YourData
    LET leagueList = d.livescore.league
    FOR league IN leagueList
        LET eventList = league.match.events
        FILTER !IS_NULL(eventList) 
        LET eventList2 = eventList.event
        FOR event IN eventList2
            FILTER event._playerid == "2405930"
            RETURN event

當然,我不確定我是否能正確理解您的數據模型/問題,但也許這個例子已經對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM