2017-04-15 17 views
1

これはダムの質問ですが、それは私をナットにしています。私はかなり新しくarangoですが、通常は私は混乱してそれを解決することができますが、今回はできません。arangodb内のネストされたリスト(サブリスト)にデータを追加する

以下のデータで、「タイプ」というリストに別の項目セットを挿入したいとします。更新を使用してサブリストの内容を変更することはできますが、リストに追加する方法を考えることはできません。

MAG_TEST フィルタdoc._key == "3704086" インサート内docに関する

{ "名": "メアリー"、 "datestart": "2017年3月16日"} doc.type INTO

だから、この [ { "_key": "3704086"、 "_id": "MAG_TEST/3704086"、 "_rev": "3704109"、 "名前": "フリップ"、 "タイプ":[ { "name": "flop"、 "sdate": "2016年4月13日" }、 { "名前": "フラップ"、 "SDATE": "2017年4月14日" } ] } ]

この [ { "_key" なる: "3704086"、 "_id": "MAG_TEST/3704086"、 "_rev": "3704109"、 "名前": "フリップ"、 "タイプ":[ { "名前": "フロップ"、 "SDATE" : "2014年4月13日" }、 { "名前": "フラップ"、 "SDATE": "2017年4月14日" }、 { "名前": "情事"、 "SDATE": "2018年4月18日" } ] ここ} ]

+0

AQLのドキュメントの[配列関数](https://docs.arangodb.com/3.0/AQL/Functions/Array.html)を見てみると、ドキュメントを '更新 'したい、既存の配列で新しい文書を 'MERGE 'することができます。また、日付を[別の​​形式](http://stackoverflow.com/questions/10286204/the-right-json-date-format)に保存して、タイムゾーン固有の情報を抽出して保存できるようにすることもできます。あなたがそれを得ることができるかどうか見てください。 –

答えて

0

を使用すると、オブジェクトの配列が含まれている属性を更新するAPPENDUPDATEを使用する方法の例です。

FOR doc IN MAG_TEST 
FILTER doc._key == "3704086" 
UPDATE doc WITH { type: APPEND(doc.type, {"Name":"Mary","datestart":"16 March 2017"})} IN MAG_TEST 

この例では、:

  • FILTER更新したい文書を見つけるため
  • UPDATEた文書
  • 使用WITHあなたは
  • 使用APPENDに更新されているようtype属性を識別する更新したい属性を表示します既存の値に新しいオブジェクトを追加するdoc.type
  • 更新されたドキュメントを格納するコレクションを指定します。MAG_TEST

希望します。

Documentation on the UPDATE command

Documentation on Array functions

注:私は上記のようにMERGEを使用しないでください、MERGEは、1つの文書に二つの文書の属性をマージするために使用されます。配列を結合する場合は、APPENDを使用できます。他の配列関数を使用すると、配列からデータを操作して取得するときに確実に使用するケースを解決できます。

+0

この回答は役に立ちましたか?その場合は、回答を受け入れ済みとマークするか、まだ問題がある場合はお知らせください。 –

関連する問題