查询领域中具有关系的嵌套对象反应本机

时间:2018-11-27 17:35:13

标签: react-native realm

我正在尝试在我的项目中使用领域数据库。这里是模式:

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:没有语法错误。基本上没有应用多个过滤器。当我甚至在subChild级别上应用单个过滤器时,它的工作原理。

0 个答案:

没有答案