1
votes

I'm using Loopback.io, with MongoDB. I can't figure how to use the "include" filter.

The goal is to have "theuser" be included fully in the "group" when done a find() or findOne(). All I get now is the id's in an array. Thanks

theuser.json:

{
  "name": "theuser",
  "plural": "theusers",
  "base": "User",
  "idInjection": true,
  "properties": {
    "peerId": {
      "type": "string",
      "required": false
    },
    "peerStatus": {
      "type": "string",
      "required": false
    }
  },
  "validations": [],
  "relations": {
    "notes": {
      "type": "hasMany",
      "model": "note",
      "foreignKey": "ownerId"
    },
    "groups": {
      "type": "hasMany",
      "model": "group",
      "foreignKey": "groupId"
    }
  },

group.json:

{
  "name": "group",
  "plural": "groups",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {
    "name": {
      "type": "string"
    }
  },
  "validations": [],
  "relations": {
    "host": {
      "type": "belongsTo",
      "model": "theuser",
      "foreignKey": "ownerId"
    },
    "clients": {
      "type": "hasMany",
      "model": "theuser",
      "foreignKey": "clientId"
    }
  },
  "acls": [],
  "methods": []
}

I'm trying to find a group like so:

Group.findOne({
        filter: {
            where: {"ownerId": 1},
            include: {relation: "clients"}
        }
}
1

1 Answers

2
votes
Group.findOne({
  where: {
    ownerId: 1
  },
  include: 'clients'
}, cb);