2017-04-13 4 views
0

私は1つの文書持つdocumentdbコレクションに仮定します。私は、既存の文書の同じ値を持つタイプが、その後どのように私は、クエリで両方の配列を一致させることができたとし、今、私はタイプで1つのクエリを書きたい{ "school": "1254", "types": [ "manager","customer", "teacher","principal" ] }正確な配列に一致するようにdocumentdbにクエリを書き込む方法は?

すなわち

を?

私はあなたがサブセットの試合たい場合は、(コードで)このような AND Sの束を使用してクエリを構築することをお勧めします

答えて

1

:あなたは順序を含め、本当に完全に一致するかどう

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の2つの句は、=を使用するものと同じように実行できないことがわかった場合、それらを保存してソートするときに並べ替えることができますと比較する。

これを実行するためにUDFを使用することもできますが、インデックスを使用してフルテーブルスキャンを実行することはできません。つまり、他の選択基準が高い場合は、WHERE句の最後にUDFを使用すると問題ありません。

+0

返信いただきありがとうございますが、私の質問を解決できませんでした。私の要件を満たすためにUDFを書く必要があるかもしれません。 –

関連する問題