过滤环回中的数组类型的字段

时间:2017-08-25 12:21:02

标签: arrays filter where-clause loopback

我正在使用带有mongodb数据库的loopback v3并为数组类型的字段实现过滤器。 inq运算符无法正常工作。

我有一个像下面的对象数组

<table>
   <tr>
      <td>
         <div class="flex">
            <span class="icon"></span>
            <span class="content">Lorem Ipsum dolor sit amet Lorem Ipsum dolor and so on ...</span>
         </div>
      </td>
      <td>
            <span class="content">LongWordWithoutWhitespace</span>
      </td>
   </tr>
</table>

现在我想要一个包含“b”

类别的列表

所以我使用下面的过滤方法

[ 
  {
    "name":"name1",
    "title": "title1",
    "category": ["a", "b","c"]
  },

  {
    "name":"name2",
    "title": "title2",
    "category": ["x", "y","z"]
  },

  {
    "name":"name3",
    "title": "title3",
    "category": ["b", "d","e"]
  }

]

我认为 inq 对于这种情况不起作用。它会给出空响应。

输出:[]

我怎样才能得到我想要的输出。

期望的输出:

filter: {where:{category:{inq:["b"]}}}

下面是我的属性

[ 
  {
    "name":"name1",
    "title": "title1",
    "category": ["a", "b","c"]
  },

  {
    "name":"name3",
    "title": "title3",
    "category": ["b", "d","e"]
  }

]

请建议。

由于

2 个答案:

答案 0 :(得分:0)

对我来说上面的情况很好。虽然在您的代码中,数组右括号应该是]而不是},只需指出我在代码中找到的内容。

您是如何为此设置模型的?

"properties": {
    "name": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "category": {
      "type": [
        "string"
      ]
    }
  },

您的模型属性是否如此?

答案 1 :(得分:0)

"role": {
  "type": "array",
  "default": [
    "patient"
  ]
}

let filter = {role:{in:['doctor']}}

    this.find({
        where: filter
    }, cb);