试图获取一些电影及其类型,但遗漏任何包含类型“Thriller”类型的记录。
我如何不仅忽略“Thriller”的流派键本身,而且还压制整个电影结果?使用我当前的查询,Thriller将从类型数组中删除,但仍会显示父对象(电影)。
这是我在查询编辑器中的当前工作: http://tinyurl.com/d2g54lj
[{
'type':'/film/film',
'limit':5,
'name':null,
'/film/film/genre': [],
'/film/film/genre!=': "Thriller",
}]
答案 0 :(得分:1)
提供的答案是正确的,但也会更改查询中的其他内容。这是直接等效于原始查询:
[{
"type": "/film/film",
"limit": 5,
"name": null,
"genre": [],
"x:genre": {"name":"Thriller",
"optional":"forbidden"},
}]
重要的部分是“可选”:“禁止”。使用的默认属性是“name”,但我们需要在使用子条款时明确指定它(允许我们指定“optional”关键字)。正如@kook所做的那样,使用id代替名称实际上更可靠,因此这是一种改进,但我希望人们能够看到修复损坏查询所需的最低限度。
我们可以将属性名称从“/ film / film / genre”缩写为“genre”,因为“type”:“/ film / film”包含在内(我们也不需要使用/ type / object作为/的属性)类型/对象/名称)。
答案 1 :(得分:0)
回答我自己的问题。
所以诀窍是不使用!=
(但不是)运算符,但要真正翻转它并使用" | =" (其中一个)运营商使用'禁止',如下:
[{
'type':'/film/film',
'limit':5,
'name':null,
'/film/film/genre': [{
"id": null,
"optional": true
}],
"forbid:/film/film/genre": {
"id|=": [
"/en/thriller",
"/en/slapstick"
],
"optional": "forbidden"
}
}]
感谢以下帖子: