【问题标题】:Fetch results from model in Waterline if property is defined如果定义了属性,则从 Waterline 中的模型获取结果
【发布时间】:2014-03-31 21:40:11
【问题描述】:

我有一个模型,其中不需要所有属性。我想查询模型并返回定义了属性 的所有实例。

这是我认为代码应该的样子,但它不起作用。有什么想法或一些详细文档的链接吗?

MyModel.find()
.where({
    "propertyThatMayExist" : {
        "!=" : undefined
    }
});

提前致谢!

【问题讨论】:

    标签: node.js sails.js waterline


    【解决方案1】:

    最简单的方法是针对null 进行测试。正确的运算符是!not

    MyModel.find().where({propertyThatMayExist: {'!': null}}).exec(console.log);
    

    这假设您有时不希望将某个实例的属性显式设置为 null,这对于某些数据库来说无论如何都会有问题(想想 MySQL,如果大多数字段未填写,它默认为 NULL )。

    【讨论】:

    • MyModel.find().where({'id': {'!': 5}}).exec(console.log);这可行,但查询 null 会返回一个空集。我用 id 和 datetime 类型属性试过这个。
    • 您使用的是什么数据库适配器?真的是id 可能为空,还是您只是将其用作示例?根据您的设置,id 可能永远不会为空。
    • 当前使用磁盘,最终会在mysql上。 id 只是一个例子。
    • 这个解决方案在适配器为 MySQL 时完美运行,但在使用“磁盘”时似乎失败了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多