StrongLoop Loopback模型在WHERE过滤器上查找OR条件

use*_*286 6 filter find where strongloop

我正在尝试使用StrongLoop的Model.find语法(这里的文档:http://apidocs.strongloop.com/loopback/#modelfindfilter-callback)通过名称或标识符找到一个人.

但我无法弄清楚如何指定OR条件.

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

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

但我希望能够匹配名称OR标识符,如下所示:

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

要么不支持,要么我的语法不正确.看起来这是通过REST API支持的(doc:http://docs.strongloop.com/display/DOC/Model+REST+API#ModelRESTAPI-Findmatchinginstances)所以我希望它支持我尝试的方式完成它.

谢谢!

小智 9

最近添加了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);
Run Code Online (Sandbox Code Playgroud)

  • 你那里有错字。您需要像这样设置or子句:或:[{'name.text':{like:'Dave'}},{'identifier.value':{like:'3303927'}}] (2认同)