Strapi $ AND查询过滤器返回用$ OR过滤的值

时间:2019-08-27 03:52:00

标签: axios strapi

我想过滤我的bandi集合并获得符合我所有条件的结果,因此是经典的$ AND过滤。

以下是“列表”集合中我的文档的示例:

{
  "data": {
    "listings": [
      {
        "name": "Three bedroom Apartment for lease in Sun Ancora Residence",
        "price": 1200,
        "size": 110,
        "rooms": 3,
        "features": [
          "Library"
          "Air Conditioning",
          "Wi-fi",
        ]
      },
      {
        "name": "Lorem ipsum dolor sit amet yadda yadda",
        "price": 1200,
        "size": 110,
        "rooms": 3,
        "features": [
          "Library"
          "Tennis",
          "Playground",
          "Cable TV",
          "Wi-fi",
        ]
      },      
    }
  }
}

因此,如果我发送诸如http://localhost:1337/listings?features_in=Library&features_in=Tennis之类的GET请求,则希望该数组使用$ AND进行过滤,但显然是$ OR。

预期结果将是仅获取示例的第二个文档,而不是同时获取两个条目。

文档(https://strapi.io/documentation/3.0.0-beta.x/guides/filters.html#available-operators)说:

  

如果您使用相同的运算符(in和nin除外),则这些值将用于构建OR查询

这就是我在这里所做的:features_in=Library&features_in=Tennis

任何人都知道如何创建与$ AND一起使用的过滤器吗?

感谢一百万!

1 个答案:

答案 0 :(得分:0)

Strapi中不存在此功能。您能否检查GitHub上是否已经存在问题,如果不存在,是否可以为此需求创建功能请求。谢谢。

此处的解决方法是创建自定义路由/控制器,并进行符合您需求的自定义数据库查询。

以下是创建新端点的文档:https://strapi.io/documentation/3.0.0-beta.x/guides/controllers.html#adding-endpoints

要访问数据模型,您将必须使用trapi.models.article(对于Article模型),并且在此变量内,您将访问本地Mongoose或Bookshelf函数。这样您就可以使用OR进行查询