我想过滤我的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一起使用的过滤器吗?
感谢一百万!
答案 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进行查询