2014-10-17 9 views
5

das folgende Beispiel Dokument Sammlung Gegeben:Arangodb AQL UPDATE für den internen Bereich der Objekt

{ 
    "timestamp": 1413543986, 
    "message": "message", 
    "readed": { 
    "8": null, 
    "9": null, 
    "22": null 
    }, 
    "type": "1014574149174" 
} 

Wie ich den Wert von bestimmten Schlüssel in Objekt aktualisiere mit der Taste „readed“? Zum Beispiel Aktualisierungswert für die Taste "8":

... 
    "8": 10, 
... 

Antwort

5

Sie können fusionieren oder MERGE_RECURSIVE wie folgt verwenden:

db._query("FOR u IN test FILTER u._key == @key UPDATE u WITH 
    'read': MERGE_RECURSIVE(u.read, { '8': 10 }) } IN test", 
    { key: "11611344050" }) 

Merge Dokumente zusammenführen wird, wo später Werte früheren überschrieben. Details finden Sie unter http://docs.arangodb.org/Aql/Functions.html.

+1

Ich denke, es wäre sinnvoll, diese Funktion in der collection.update -Methode über einen anderen Parameter wie: collection.update (Dokument, Daten, überschreiben, keepNull, waitForSync, mergeRecursive) als Aktualisierung eines inneren Feldes ist eine häufige Verwendung Fall. – mikestaub

Verwandte Themen