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

时间:2014-05-20 21:58:14

标签: 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);

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:7)

最近添加了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);

答案 1 :(得分:2)

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