关于 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
)属性很棘手,对此我没有任何一刀切的答案。
我发现 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
)属性很棘手,对此我没有任何一刀切的答案。