2012-01-03 69 views
2

如果我的查询返回结果,我尝试提取一些额外的信息。如何使用MQL编写条件查询?

例如,在此查询,notable_for返回如“/音乐/ musical_group”我要合并的另一个查询提取有关“/音乐/ musical_group”的一些信息,如它的“名字”

[{ 
"id": "/en/pearl_jam", 
"mid":None, 
"/common/topic/notable_for": [], 
"name":[] 
}] 

但如果它不返回任何东西,我不希望我的查询失败。例如,它下面的查询返回领域的空列表“notable_for”

[{ 
"id": "/music/musical_group", 
"mid":None, 
"/common/topic/notable_for": [], 
"name":[] 
}] 

我应该如何信封我这样的目的的查询?

回答

2

你选择了一个pseudoproperty(* /普通/主题/ notable_for *),而不是一个真正的财产为您的例子,它的表现略有不同。对于一个不动产,如果你想得到所有的子属性,你可以使用@ masouras的简写符号([{}]),但是如果你想挑选一个或两个,诀窍就是使用“可选”关键词。

例如,下面的查询:如果一个乐队没有成员列出

[{ 
    "id": "/m/01mntvx", 
    "type":"/music/musical_group", 
    "/music/musical_group/member": [{ 
    "member": { 
     "name": null 
    }, 
    "optional": true 
    }], 
    "name":null 
}] 

甚至会工作。

+0

谢谢汤姆!对于任何人想知道的,这就是我真正想要的: [{ “id”:“/ en/pearl_jam”, “mid”:null, “/ common/topic/notable_for”:[{“optional” true}] }] – cirik 2012-01-09 14:00:50

0

这是你问:

[{ “ID”: “/ EN/pearl_jam”, “中”:空, “/普通/主题/ notable_for”:[{}] , }]

http://tinyurl.com/7tchree

+0

如果我们将id设置为“/ music/musical_group”,则失败。我想要一个不会失败的查询。 – cirik 2012-01-09 13:57:34