Javascript 关于环回查询

Javascript 关于环回查询,javascript,loopbackjs,Javascript,Loopbackjs,我发现loopback是一个很酷的框架。在我学习的过程中,我发现了一些有关联的东西 例如,当我使用updateAll进行查询时。如果参数未定义,查询将更新所有数据 Employee.updateAll( { username: undefined }, { address: "ABC" }, function(err, results) { }); 为什么它会在值未定义时更新所有数据?免责声明:我是环回框架的核心开发人员 环回的

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

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

Employee.updateAll(
    {
        username: undefined
    },
    {
        address: "ABC"
    }, function(err, results) { 
});
为什么它会在值未定义时更新所有数据?

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

环回的设计目的是将
未定义的
视为完全未定义属性。这模仿了JSON格式的行为,其中带有
未定义值的属性只是从字符串输出中省略

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

如果您使用SQL数据库存储数据,那么使用
null
而不是
undefined
应该对您很有用


在其他(NoSQL)数据库中检测空(
未定义的
)属性是一件棘手的事情,对此我没有任何一刀切的答案。

在模型定义JSON文件页面中,有一个名为required的模型属性。当我运行create时,如果所需设置为true,它将返回validation error。但是,当我运行updateAll时,如果必需的设置为true,它将不会返回验证错误。因此,必需的只验证创建,而不验证updateAll或其他?@jdc9090这不是StackOverflow的工作方式!如果您还有其他问题,请发布(问)一个新问题:)