2017-09-21 19 views
0

配列を含むcouchbase doc(他のいくつかのキーとともに)があります。 N1QLクエリを使用してこの配列の要素の順序を更新することは可能ですか?私はリストをソートする必要はありません:couchbase文書でN1QLを使用して配列内の要素の順序を更新する方法

{ 
    networkList: [ 
     {'name': 'network1'}, 
     {'name': 'network2'}, 
     {'name': 'network3'} 
    ] 
} 

例えば

{ 
    networkList: [ 
     {'name': 'network2'}, 
     {'name': 'network1'}, 
     {'name': 'network3'} 
    ] 
} 

NOTEなります。私はちょうど任意の要素の位置を変更したい。上記の例では、第2の要素を第1の位置に移動させる。予め

おかげ

+0

配列関数をチェックするhttps://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-参照/ arrayfun.html ARRAY_INSERT(ARRAY_REMOVE(networkList、{'name': 'network2'})、0、{'name': 'network2'}) – vsr

+0

提案していただきありがとうございます。 ユースケースは、特定の要素(3番目の要素を言う)を特定の位置(1番目と言うことができます)に移動する必要があることです。この要素はオブジェクトであり、異なるドキュメントの異なるキー値のペアを持つことがあるため、クエリのハードコーディング値は機能しません。 これを配列インデックスとともに使用してみます。それが動作するかどうかを見てみましょう。 – panghal0

+1

ARRAY_INSERT(ARRAY_REMOVE(networkList、networkList [3])、0、networkList [3]))この作業ができました。あなたは答えとして投稿することができますか?答えを探して、このページに類似のユースケースと土地を持っている人を助けるかもしれません。 – vsr

答えて

1

REMOVE所定の位置からアレイ素子と以下のような所望の位置に挿入します。 ARRAY_INSERT(ARRAY_REMOVE(networkList、networkList [3])、0、networkList [3])

関連する問題