【问题标题】:StrongLoop Loopback Model find with OR condition on WHERE filterStrongLoop Loopback 模型在 WHERE 过滤器上找到 OR 条件
【发布时间】:2017-08-01 17:03:06
【问题描述】:

我正在尝试使用 StrongLoop 的 Model.find 语法通过姓名或标识符来查找人(此处的文档:http://apidocs.strongloop.com/loopback/#modelfindfilter-callback)。

但我不知道如何指定 OR 条件。

我可以使用以下语法匹配名称和标识符:

person.find({
    where: {
        'name.text': {like: 'Dave'},
        'identifier.value': {like: '3303927'}
    }
}, callback);

但我希望能够通过以下方式匹配名称或标识符:

person.find({
    where: {
        'name.text': {like: 'Dave'} ||
        'identifier.value': {like: '3303927'}
    }
}, callback);

要么不支持,要么我的语法不正确。看来这是通过 REST API 支持的(文档:http://docs.strongloop.com/display/DOC/Model+REST+API#ModelRESTAPI-Findmatchinginstances)所以我希望它得到支持,就像我试图完成它的方式一样。

谢谢!

【问题讨论】:

    标签: filter find where strongloop


    【解决方案1】:

    最近添加了 AND/OR 运算符。请在以下位置查看使用示例:

    https://github.com/strongloop/loopback-datasource-juggler/blob/master/test/basic-querying.test.js#L156

    语法是:

    person.find({
        where: {
          or: {
            'name.text': {like: 'Dave'},
            'identifier.value': {like: '3303927'}
          }
        }
    }, callback);
    

    【讨论】:

    • 你有一个错字。您需要像这样设置 or 子句: or: [ { 'name.text': {like: 'Dave'} }, { 'identifier.value': {like: '3303927'} } ]
    【解决方案2】:
    person.find({
        where: {
            or: [
                {'name.text': {like: 'Dave'},
                {'identifier.value': {like: '3303927'}
            ]
         }
    }, callback);
    

    【讨论】:

    • 请提供一些解释,而不仅仅是原始代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多