【问题标题】:How to filter data using loopback include relation?如何使用环回包含关系过滤数据?
【发布时间】:2018-05-10 17:47:26
【问题描述】:

我有三个数据库表,例如员工、部门和请假详细信息。 员工和部门使用外键department_id 建立关系。也使用外键user_id 建立员工和离开细节 我需要从 leave_details where department_id :x 获取数据

我的代码是这样的

leave_details.json

 "relations": {
"employee": {
  "type": "belongsTo",
  "model": "employee",
  "foreignKey": "user_id"
},

和employee.json

 "properties": {"department_id": {
  "type": "number"
}}
 "relations": {
"department": {
  "type": "belongsTo",
  "model": "department",
  "foreignKey": "department_id"
},}

和 leave_details.js

 filter = {

    include: [{ relation: 'employee', scope: { where: { department_id: 5} }  }],

    fields: ['id', 'user_id', 'requested_time', 'leave_type', 'leave_start_time', 'leave_status', 'approved_by', 'approval_time', 'leave_end_time'],
    order: 'requested_time DESC',
  };

你能帮帮我吗

【问题讨论】:

    标签: node.js loopbackjs loopback


    【解决方案1】:

    到目前为止,使用环回过滤器是不可能的,您需要使用数据库级查询 sql/mongodb 聚合等。

    https://github.com/strongloop/loopback/issues/517

    不破坏环回逻辑的复杂查询最方便的是mongodb聚合查询,如果你开发一个mixin,你会得到类似的东西:

    let filter = {
        where:{},
        include:[],
        ...
        aggregate: [{
            $match: {
                period: {
                    $lt: period || new Date()
                }
            }
        },
        {
            $sort: {
                period: -1
            }
        },
        ...]
    };
    

    或者使用例如这个 https://github.com/BoLaMN/loopback-mongo-aggregate-mixin

    【讨论】:

      猜你喜欢
      • 2017-07-12
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      相关资源
      最近更新 更多