Loopback 2.4: how to query certain fields of related model via REST API

4k Views Asked by At

I have User model over relational DB.

Each User can hasMany "users" where "chiefId" is FK.

"relations": {
    "users": {
      "type": "hasMany",
      "model": "User",
      "foreignKey": "chiefId"
    },
}

I can query related users for each chief-user like this:

GET /users?filter={"include":"users"}

But it returns full user objects.

  • How should I query only "name" properties of related users?
  • Also is it possible to count related instances in one request to server?
3

There are 3 best solutions below

2
On BEST ANSWER

A late reply but I just ran into this question now. It is possible:

filter: {
 include:{
  relation: "users",
  scope: {
   fields:["name"]
  }
 }
}
3
On
/users?filter[fields][0]=name

See https://github.com/strongloop/loopback-example-relations-basic for more info.

0
On

As far as I understood this question is about adding a nested filter on an include level, which seems to be not yet supported: https://groups.google.com/forum/#!msg/loopbackjs/T6onsYMJFOI/V4ILc3Obf3MJ

May be it's not the best way to approach this problem, but what you can do is a manual response transformation in .afterRemote('find', ...) hook.