node.jsormgraph-databasesdgraph

Not able to query for nested relations using dgraph-orm


I am using dgraph-orm for fetching nested relational values but it works for single level but not multiple level. I am getting the page details but unable to fetch the avatar of the page.

Here is my snippet:

let posts = await PagePost.has('page_id', {
      filter: {
        page_id: {
          uid_in: [page_id]
        }
      },
      include: {
        page_id: {
          as: 'page',
          include: {
            avatar: {
              as: 'avatar'
            }
          }
        },
        owner_id: {
          as: 'postedBy'
        }
      },
      order: [], // accepts order like the above example
      first: perPage, // accepts first
      offset: offset, // accepts offset
    });

I am not getting avatar for the attribute page_id:

 {
            "uid": "0x75b4",
            "title": "",
            "content": "haha",
            "created_at": "2019-09-23T08:50:52.957Z",
            "status": true,
            "page": [
                {
                    "uid": "0x75ac",
                    "name": "Saregamaapaaaa...",
                    "description": "This a is place where you can listen ti thrilling music.",
                    "created_at": "2019-09-23T06:46:50.756Z",
                    "status": true
                }
            ],
            "postedBy": [
                {
                    "uid": "0x3",
                    "first_name": "Mohit",
                    "last_name": "Talwar",
                    "created_at": "2019-07-11T11:37:33.853Z",
                    "status": true
                }
            ]
        }

Is there a support for multilevel field querying in the orm??


Solution

  • There was some issue with ORM itself it was not able to recognize the correct model name for multilevel includes and generating the wrong queries.

    Fixed the same in version 1.2.4, please run npm update dgraph-orm --save to update your DgraphORM.

    Thanks for the issue.