我发现loopback是一个很酷的框架。在我学习的同时,我发现了一些有线的东西。
当我进行查询时,例如,使用updateAll。如果参数未定义,查询将更新所有数据。
Employee.updateAll(
{
username: undefined
},
{
address: "ABC"
}, function(err, results) {
});
为什么在未定义值时会更新所有数据?
答案 0 :(得分:2)
免责声明:我是LoopBack框架的核心开发人员。
LoopBack旨在以与未定义属性相同的方式处理undefined
。这模仿了JSON格式的行为,其中带有undefined
值的属性只是从字符串输出中省略。
因此,您的过滤器{username: undefined}
被解释为空过滤器{}
,它被解释为“无条件”,因此匹配所有记录(模型实例)。
如果您使用SQL数据库存储数据,那么使用null
代替undefined
应该可以很好地为您服务。
检测其他(NoSQL)数据库中的空(undefined
)属性很棘手,我没有任何一刀切的答案。