环回模型中的动态属性或聚合函数

2023-11-26

我将如何在环回模型中使用聚合函数?如果我有一个由 mysql 数据库支持的模型,我是否可以让 Model1 与 Model2 具有 hasMany 关系(具有给定的数字属性),并在 Model1 中拥有一个从 Model2 获取该字段的 SUM 的属性?




    {
        "Model1" : {
            "Relations" : {
                "model2s" : {
                    "type": "hasMany",
                    "model": "Model2",
                    "foreignKey": "model1Id"
                }
            },
            "Properties" : {
                "total" : {
                    "type": "Number"
                    [SUM of Model2 'amount' field]
                }
            }
        },
        "Model2" : {
            "Relations" : {
                "model1s" : {
                    "type": "belongsTo",
                    "model": "Model1",
                    "foreignKey": "model1Id"
                }
            },
            "Properties" : {
                "amount" : {
                    "type": "Number"
                }
            }
        }
    }

  

另一方面,在模型中放置条件的正确方法是什么,以便 getter 返回的值取决于某个表达式?我想从关系中返回一个值(如果存在),否则返回主模型上存在的值。

我已经尝试过这个(伪代码):




    module.exports = function(MyModel) {
        MyModel.on('attached', function() {
            var app = MyModel.app;

            MyModel.getter['total'] = function() {
                return (this.model1Id ? this.model1.total : this.total);
            };
        });

    };
  

然而,我最终得到了RangeError: Maximum call stack size exceeded错误(类似于这个问题)。我假设这是因为它一遍又一遍地递归调用 getter,但我不确定解决问题的方法。

提前致谢...


这可以通过 Loopback 来完成操作钩子.

Model1.observe('loaded', function (ctx, next) {
  if (ctx.instance) {
    var sum = 0;

    Model1.app.models.Model2.find({
      where: {
        model1Id: ctx.instance.id
      },
      fields: {
        givenNumericProperty: true
      }
    }, function (err, model2s) {
      if (err) return next(err);

      if (model2s.length) {
        model2s.forEach(function (model2) {
          sum += model2.givenNumericProperty;
        });

        ctx.instance.calculatedProperty = sum;
      }

      return next();
    });

  } else {
    return next();
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

环回模型中的动态属性或聚合函数 的相关文章

  • 环回模型中的动态属性或聚合函数

    我将如何在环回模型中使用聚合函数 如果我有一个由 mysql 数据库支持的模型 我是否可以让 Model1 与 Model2 具有 hasMany 关系 具有给定的数字属性 并在 Model1 中拥有一个从 Model2 获取该字段的 SU
  • Loopbackjs:将模型附加到不同的数据源

    我已经为我的环境定义了几个使用数据源 db mysql 的模型 有没有办法将多个数据源附加到这些模型 以便我能够对不同的数据库执行 REST 操作 IE 获取 api Things ds db GET api Things ds anoth
  • 刷新页面出现 404:仅在使用 /dist 文件夹时发生

    我有一个 LoopBackJS Restful 服务器运行在 localhost 3000 在前端 我有一个简单的 Angular 2 应用程序 它使用上述 API 当出现以下情况时 一切工作正常 使用nodemon运行服务器 根文件夹位于
  • 为什么节点需要缓存被填满并泄漏

    我正在对使用 Babel 转译的环回 API 进行压力测试 然而 在这些较长的 冒烟 测试中 我们看到堆分析中的 require 缓存变得相当大 高达 1GB 并且没有获得 GCd 我知道 require 缓存在最后一个引用被删除之前不会进
  • Strongloop:用[and]和[or]条件一起过滤数据

    我正在尝试使用 and 和 or 条件过滤数据 我想得到这个 mySql 查询 SELECT FROM data WHERE property1 11 OR property1 13 AND property2 6 我写的其余 api 是这
  • 如何让 slc 命令在 Ubuntu 上运行?

    我已经使用安装了 Strongloopnpm install g strongloop在我的 Ubuntu 14 04 服务器上 这slc命令不起作用 它说 The program slc is currently not installe
  • 使用loopback.js和MongoDB自动增量

    我想使用环回自动增加 mongodb 文档数量 我在mongo中做了函数 function getNextSequence name var ret db counters findAndModify query id name updat
  • 如何覆盖默认的密码哈希方法和环回验证方法?

    我对 Loopback 非常陌生 我想将 Loopback 的默认密码哈希方法覆盖为当前在我的后端使用的方法 以便我可以将此应用程序与该数据库同步 我读了这个链接https groups google com forum topic loo
  • 环回 - 包括关系的计算属性

    我有一个环回应用程序 我希望能够在 API 调用中包含关系的计算属性 例如 假设我有一个apartment模型和一个address模型 这address有属性city and state 我想向公寓模型打一个电话 并将城市和州作为相关信息中
  • 使 Loopback API Ember.js 兼容

    我正在尝试使用 Loopback 来获取与 Ember 对话的 API Ember 要求 JSON 包含在 键 中 例如对于一个帐户 account domain domain com subdomain test title test d
  • Strongloop/loopback - 维护多个版本的 API

    我是第一次使用strongloop loopback 有一些基本的指导online https docs strongloop com display public LB Versioning your API用于 API 版本控制 var
  • 如何设置 ACL 以允许每个人列出 REST API 中的所有用户

    我尝试使用 REST API 列出我的 Loopback 2 0 应用程序中的所有用户 但收到以下错误 error name Error status 401 message Authorization Required statusCod
  • 使用 StrongLoop 自动创建 mysql 表

    我正在尝试将 Strongloop 与 MySql 一起使用 但无法弄清楚如何将表迁移或自动创建到 MySql 数据库中 是否至少有一种方法可以将模型导出到 MySql 架构中 或者我是否必须手动创建表 我一直在尝试使用 mysql 演示应
  • 对类型为其他模型的属性进行环回验证

    我定义了两个模型 位置和地址 定义如下 address properties address1 type string required true public true dataSource db plural addresses loc
  • 使用访问令牌重置环回密码

    我正在开发一个使用 Loopback 作为框架的项目 其中包括用户和身份验证 我添加了生成并通过电子邮件发送的密码重置路由 一切似乎都正常工作 最近 我发现密码重置似乎不起作用 这里重置密码的流程是 调用用户密码重置方法 通过重置事件发送电
  • 在上传之前使用环回组件存储中的远程挂钩重命名文件

    在上传到环回组件存储之前 我很难重命名文件 看起来 环回并没有提供相同的内置选项 对于从角度形式上传 我使用了角度上传器 beforeupload 方法来使用以下方法更改文件名 this fileExtension item file na
  • 错误:“主机标识符中存在双冒号”

    我正在尝试连接到我在 MLab 托管的数据库 我正在使用 StrongLoop API 我已将托管数据库的配置信息放入 datasources json 和 config json 文件中 但每当我使用以下命令运行目录时npm start
  • Swift 中的 StrongLoop 环回示例

    我正在尝试在 Swift 中实现示例 LoopBack iOS 应用程序 创建 LoopBack iOS 应用程序 第 1 部分 http docs strongloop com display DOC Creating a LoopBac
  • 如何在 Loopback 4 中使用有状态请求?

    在 v3 中 我们可以在底层 Express 上定义中间件 例如快速会话 https github com expressjs session 添加一个session请求对象上的属性 在 v4 中 看起来没有对应的东西 并且底层的 Expr
  • 环回关系不填充对象 ID 数组

    到目前为止我有 2 个模型 工作流程核心 工作流程步骤 工作流核心有一个steps属性 该属性是数组类型并且包含1 多个步骤 当呼叫接通时工作流程核心响应正文不会使用实际步骤对象填充步骤数组 工作流程核心 json name workflo

随机推荐

  • Android 连续语音识别返回 ERROR_NO_MATCH 太快

    我尝试实现连续语音识别机制 当我开始语音识别时 我在 logcat 中收到以下消息 06 05 12 22 32 892 11753 11753 com aaa bbb D SpeechManager startSpeechRecognit
  • 如何在 Java 中比较字符串?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我一直在使用 我的程序中的运算符来比较到目前为止我的所有字符串 然而 我遇到了一个错误 将其中一个更改为 equals 相反 它修复了该错误 Is 坏的 什么时
  • 如何通过环境在 aurelia 中设置常量

    我希望将我的 API 基本 URL 更改为dev to prod 在 Angular I 用户中使用config json文件 后来使用注入到应用程序中grunt env 如果您使用奥里利亚 CLI 它将生成一个environments你的
  • 如何在代码编辑器中禁用自动完成代码语句?

    每次我打字if然后按空格键 Delphi 完成它if True then和上面一个新的空行 有没有办法去除this 自动完成 功能或至少编辑它以不创建新行 来自工具 选项 编辑器选项 代码洞察菜单中 取消选择代码模板完成下的自动完成复选框
  • 如何以精确的时间(即 10 毫秒)定期运行 Erlang 进程

    我想每 10 毫秒运行一次定期的 erlang 进程 基于挂钟时间 10 毫秒应该尽可能准确 正确的实施方法应该是什么 如果您想要真正可靠和准确的定期过程 您应该依靠实际的挂钟时间使用erlang monotonic time 0 1 如果
  • 如何运行 test/a.py 形式的单元测试?

    是否可以实现一个具有如下文件结构的Python项目 myproj a py b py c py test a py b py c py Note in particular that the test scripts under test
  • Mongodb - 使用 addToSet 的项目计数

    我分组依据organization并使用 addToSet来展现与众不同的machineIds与此相关的organization 我想计算machineIds对于每个organization 然而 下面的代码返回所有的计数machineId
  • flutter查询firestore中的多个集合

    我正在玩 flutter 但我遇到了 firestore 的问题 我无法弄清楚 假设我想检索客户的购买者历史记录 并且我有一个如下所述的 Firestore 因此我有一个 用户 集合 其中包含以下文档user id然后在其中 我有一个 产品
  • Identity 2.1 - 未找到 UserId 但之前可以使用

    该代码之前多次工作 但在 Identity 2 1 中为用户添加几个新属性后 它突然停止工作 尽管在调试器中可以看到 UserId 的值 但我收到了 UserId not found 错误 任何人都知道为什么会突然发生这种情况 至少看到这一
  • 窗口卸载事件的本地存储

    我使用本地存储来存储一些数据 用户发出 ajax 请求来获取信息 我将结果存储在存储中 以便下次他请求相同的信息时 我首先在存储中查看它是否存在 现在我意识到 将数据保存在内存中的对象中 并在需要时循环该数据 而不是循环本地存储 实际上更有
  • Delphi 的 WebSocket 客户端实现

    Delphi 有免费的 WebSocket 客户端实现吗 我只找到了这个 WebSockets Delphi 组件 但它不是免费的 这是我的开源库 https github com andremussche DelphiWebsockets
  • Django 2.1 - 'functools.partial' 对象没有属性 '__name__'

    我最近将 Django 从 2 0 7 升级到 2 1 1 出现了一个新错误 其中出现此错误 functools partial object has no attribute name 我想了解我的修复是否正确以及是什么导致了这个新错误的
  • 对核心数据实体进行排序的最佳方法是什么?

    我有一个完全正常工作的核心数据模型 但是当我使用获取请求返回数据时 它的顺序看似随机 对这些数据进行排序的最佳方法是什么 是使用核心数据模型中的另一个表 然后 查询 第一个表吗 或者是将数据拉入数组中 然后以这种方式排序 我不太确定如何做其
  • ggplot 函数在图例下方添加文本

    在 R 中 我想创建一个函数 它接受 ggplot 对象和一些文本并返回 ggplot 对象 方法是在图例下方添加文本 在图的右侧 同时将图例保留在右侧 myplot ggplot iris aes x Sepal Length y Sep
  • 单一来源项目结构有哪些缺点?

    我是目前公司的新人 正在从事由我的直接团队领导编写的项目 该公司通常不使用 C 但我的同事用 C C 编写了高效的代码 只有我们知道如何用 C 编码 我和我的领导 所以没有第三种意见可以涉及 在我对这个项目有了足够的了解之后 我意识到整个结
  • 什么是无界数组?

    什么是无界数组 无界数组和动态分配数组有什么区别 与无界数组相关的常见操作有哪些 就像我们有堆栈数据结构的弹出和推送 无界数组可以 并且通常是 静态分配 实现无界数组时的主要关注点是提供类似动态数组的自由来在运行时决定数组大小 而不会因运行
  • 与序列化相比,使用 MarshalByRefObject 的成本有多高?

    在我的 Azure Web 角色代码中 我有一个CustomIdentity类派生自System Security Principal IIdentity 在某些时候 NET 运行时尝试序列化该类 and 序列化不起作用 试图解决我搜索了很
  • 为什么 range-for 找不到 std::istream_iterator 的 begin 和 end 重载?

    我有这样的代码 std ifstream file filename std ios base in if file good file imbue std locale std locale new delimeter tokens fo
  • 扩展此类以在列表视图中撤消/重做

    我正在使用第三方代码来管理 Windows 窗体项目中的撤消 重做操作 我需要扩展该类来管理列表视图中的撤消 重做操作 这意味着 撤消 重做添加 删除项目和子项目 撤消 重做检查 取消检查行 撤消 重做一些我可能错过的其他重要事情 我不知道
  • 环回模型中的动态属性或聚合函数

    我将如何在环回模型中使用聚合函数 如果我有一个由 mysql 数据库支持的模型 我是否可以让 Model1 与 Model2 具有 hasMany 关系 具有给定的数字属性 并在 Model1 中拥有一个从 Model2 获取该字段的 SU