关于LoopBack查询

时间:2017-10-14 17:30:36

标签: javascript loopbackjs

我发现loopback是一个很酷的框架。在我学习的同时,我发现了一些有线的东西。

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

如果您使用SQL数据库存储数据,那么使用null代替undefined应该可以很好地为您服务。

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