2016-08-04 11 views
0

私はテーブル 'test'を作成し、CQLを使用して以下のコマンドを使用していくつかの値を挿入しました。私は、クエリの下に使用して取得するときCassandraは、マップフィールドのINコマンドを使用してクエリを選択します

create table testt(val map<text,text>, id text primary key); insert into testt (val,id) values ({'key':'1'},'1');

は、それは私がすべてはヴァル[ キー ']の値が含まれている複数の値を取得する必要が

select * from testt where val['key']='1' allow filtering;

動作します。以下のコマンドを使用するとエラーが発生します。

select * from testt where val['key'] IN('1') allow filtering;

SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] message="line 1:37 no viable alternative at input 'IN' (... testt where val['key'] [IN]...)">

他の方法またはその所望の出力を得るために利用可能な方法はありますか?

+0

こんにちは。必要は何ですか?コレクションの検索は非常に複雑です。おそらく他のモデルを使って、より簡単に目的の値を検索することができます。たとえば、検索テーブルを使用します。 –

答えて

0

Cassandraの複数のキーの値を取得できる唯一の方法は、複数のクエリを実行することです。 1つのクエリで必要な値を取得できるように、主キーを調整することができます。

関連する問題