0
假設documentdb收藏我有1號文件:如何在documentdb中編寫查詢以匹配確切的數組?
即{ "school": "1254", "types": [ "manager","customer", "teacher","principal" ] }
現在我想寫1個查詢與類型,假設我有類型的現有文件的相同值,那麼我怎麼才能在查詢這兩個陣列相匹配?
假設documentdb收藏我有1號文件:如何在documentdb中編寫查詢以匹配確切的數組?
即{ "school": "1254", "types": [ "manager","customer", "teacher","principal" ] }
現在我想寫1個查詢與類型,假設我有類型的現有文件的相同值,那麼我怎麼才能在查詢這兩個陣列相匹配?
我建議您構造(代碼)有這樣一羣AND
個查詢,如果你想要一個子集匹配:
SELECT * FROM c WHERE <myArray[0]> IN c.types AND <myArray[1]> IN c.types...
還是喜歡這個,如果你想有一個真正的精確匹配,包括訂單:
SELECT * FROM c WHERE c.types[0] = <myArray[0]> AND c.types[1] = <myArray[1]>...
還是喜歡這個,如果你確切的,但不想與秩序:
SELECT * FROM c WHERE c.types[0] IN <myArray> AND c.types[1] IN <myArray>...
我的猜測是,他們都會執行相同的操作,但是如果您發現IN
子句的性能不如=
那麼好,那麼當您存儲它們並對其進行排序時,您可能需要對它們進行排序去比較。
您也可以使用UDF來完成此操作,但這不會允許使用索引並導致全表掃描。也就是說,如果您有其他高度選擇性的標準,那麼在WHERE
子句的末尾使用UDF可能沒問題。
larry謝謝你的回覆,但我無法用查詢解決我的問題,可能是我需要編寫UDF來滿足我的要求。 –