2013-07-23 107 views
0

的目錄屬性的元素,我有以下數據模型聲明:查詢數據庫模型中的

toto = { name : "toto1" tata_list : ["id1", "id2", "id3", ...] } 

隨着OPA數據庫查詢語法,我可以檢索包含特定的「「TOTO」模式ID」在他的‘tata_list’屬性?

喜歡的東西:

myToto = /toto/toto[tata_list contains "id1"] 

還是我必須要瀏覽所有的「TOTO」,然後搜索爲他們每個人如果tata_list屬性包含我的ID?

謝謝!

回答

1

這因此在OPA稱爲 「空穴表述」:[_]。對於列表類型的數據庫值:

list(anything) /my_db/my_list_val 

查詢中的路徑my_list_val[_]引用列表中的任何元素。

在手動(在WIKI)的例子的Querying/Sub-queries章:

dbset(_, _) x = /dbname/complex[smap["key"].lst[_] == "value"] 

發現基於命名lstlist(string)值的文件。如果list(與現場實際lst,用繩子地圖,關鍵是"key"和值記錄存在記錄)包含字符串"value",那麼它滿足搜索條件。

在你的情況下,查詢可能是:

myToto = /toto/toto[tata_list[_] == "id1"] 
+0

非常感謝,又做技巧=) – gogson