关于 LoopBack 查询

About LoopBack query

我发现 loopback 是一个很棒的框架。在我学习它的过程中,我发现了一些有线的东西。

当我进行查询时,例如,使用 updateAll。如果参数未定义,查询将更新所有数据。

Employee.updateAll(
    {
        username: undefined
    },
    {
        address: "ABC"
    }, function(err, results) { 
});

为什么未定义值时会更新所有数据?

免责声明:我是 LoopBack 框架的核心开发人员。

LoopBack 旨在以与根本未定义 属性 相同的方式处理 undefined。这模仿了 JSON 格式的行为,其中具有 undefined 值的属性被简单地从字符串输出中省略。

因此,您的过滤器 {username: undefined} 被解释为空过滤器 {},它被解释为 "no conditions",因此匹配所有记录(模型实例)。

如果您使用 SQL 数据库来存储数据,那么使用 null 而不是 undefined 应该很适合您。

检测其他(否SQL)数据库中的空(undefined)属性很棘手,对此我没有任何一刀切的答案。