Запросы вложенных объектов с отношениями в области реагируют на родной - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь использовать realm DB в моем проекте.вот схемы:

export const AllParentObj = {
    name:"AllParentObj",
    properties:{
        AllObjects:"OneChildObj[]" 
    }
}
export const OneChildObj = {
    name:"OneChildObj",
    properties:{
        chKey:"string",
        chItems:"subChild[]"
    }
};

export const subChild = {
    name:"subChild",
    properties:{
        subChName:"string",
        subChMsg:"string"
    }
};

и вот способ, которым я пытаюсь прочитать из области:

let myCode = "langid1";
let myid="xyz";
let allObjs = this.DBRealm.objects('AllParentObj').
                    filtered(`AllObjs.chkey== '${myCode}' AND \
                                AllObjs.chItems.subChName== '${myid}'`);

вышеупомянутый запрос, возвращающий все результаты запроса AllObjs.chkey== '${myCode}' другое условие не берется для фильтрации .Есть ли место, где я делаю ошибку в приведенном выше коде?

Я хочу, чтобы вывод моего фильтра был соответствующей страницей внутри данного кода языка.Например: пример ввода json в моей базе данных:

{
    "AllMessages":[
        {
            locale:"langid1",
            pages:[
                {
                    "pageName":"pagename",
                    "messages":
                        {
                            "ml1p1m1":"msgText",
                            "ml1p1m2":"ml1 m2text"
                        }

                },
                {
                    "pageName":"xyz",
                    "messages":
                        {
                            "ml1p2m1":"ml1p2m1 text",
                            "ml1p2m2":"ml1p2m2 text"
                        }
                },
                {
                    "pageName":"rtyui",
                    "messages":
                        {
                            "ml1p2m1":"ml1p3m1 text",
                            "ml1p2m2":"ml1p3m2 text"
                        }
                },

            ]
        },
        {
            locale:"langid2",
            pages:[
                {
                    "pageName":"abcd",
                    "messages":{
                            "ml2p1m1":"ml2p1m1 text",
                            "ml2p1m2":"ml2p1m2 text"
                        }
                },
                {
                    "pageName":"hjk",
                    "messages":{
                            "ml2p2m1":"ml2p2m1"
                        }
                },

            ]
        },

    ]
}

Вывод: для langid1 и pageName: xyz

{
        "pageName":"xyz",
        "messages":
        {
            "ml1p2m1":"ml1p2m1 text",
            "ml1p2m2":"ml1p2m2 text"
        }
}

Может кто-нибудь помочь?PS: нет синтаксических ошибок.в основном несколько фильтров не применяются.когда я применяю один фильтр даже на уровне подчиненного ребенка, он работает.

...