2014-10-17 11 views
5

के आंतरिक क्षेत्र के लिए Arangodb AQL अद्यतन संग्रह का निम्न उदाहरण दस्तावेज़ को देखते हुए:वस्तु

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

मैं विशिष्ट कुंजी का मान वस्तु में कुंजी के साथ अपडेट करते हैं "readed"? के लिए कुंजी "8" उदाहरण के अद्यतन मूल्य के लिए:

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

उत्तर

5

इस प्रकार आप मर्ज या MERGE_RECURSIVE उपयोग कर सकते हैं:

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

मर्ज दस्तावेजों, जहां बाद में मान पहले वाले के ऊपर लिख देगा मर्ज हो जाएंगे। विवरण के लिए http://docs.arangodb.org/Aql/Functions.html देखें।

+1

मुझे लगता है कि इस फ़ंक्शन को संग्रह.अपडेट विधि में किसी अन्य पैरामीटर के माध्यम से इस तरह का खुलासा करना होगा: collection.update (दस्तावेज़, डेटा, ओवरराइट, keepNull, waitForSync, mergeRecursive) एक आंतरिक फ़ील्ड को अपडेट करने के रूप में एक सामान्य उपयोग है मामला। – mikestaub

संबंधित मुद्दे