आप Couchbase N1QL अद्यतन के लिए Google को N1QL अद्यतन स्टेटमेंट्स का उपयोग कर सकते हैं अद्यतन अद्यतन दस्तावेज़ों के साथ पहले से मौजूद एक दस्तावेज़ को प्रतिस्थापित करता है।
अद्यतन:
UPDATE keyspace-ref [use-keys-clause] [set-clause] [unset-clause] [where-clause] [limit-clause] [returning-clause]
सेट खंड:
SET path = expression [update-for] [ , path = expression [update-for] ]*
अद्यतन-के लिए:
FOR variable (IN | WITHIN) path (, variable (IN | WITHIN) path)* [WHEN condition ] END
सेट नहीं-खंड:
UNSET path [update-for] (, path [ update-for ])*
keyspace-ref: Specifies the keyspace for which to update the document.
आप इस तरह से keyspace-नाम के लिए एक वैकल्पिक नाम स्थान नाम जोड़ सकते हैं:
namespace-name:keyspace-name.
उपयोग कुंजी-खंड: निर्दिष्ट करता है डेटा वस्तुओं के कुंजी अद्यतन करने की। वैकल्पिक। कुंजी कोई अभिव्यक्ति हो सकती है।
सेट-क्लॉज: एक विशेषता बदलने के लिए मान निर्दिष्ट करता है।
अनसेट-क्लॉज: दस्तावेज़ से निर्दिष्ट विशेषता को हटा देता है।
अद्यतन-के लिए: खंड के लिए अद्यतन सरणी में प्रत्येक मिलान तत्व के लिए दिए गए गुण को नेस्टेड सरणी और एसईटी या यूएनएसईटी पर फिर से करने के लिए फोर स्टेटमेंट का उपयोग करता है।
कहां-खंड: उस स्थिति को निर्दिष्ट करता है जिसे डेटा अपडेट करने के लिए पूरा करने की आवश्यकता होती है। वैकल्पिक।
सीमा-खंड: अद्यतन की जा सकने वाली वस्तुओं की सबसे बड़ी संख्या निर्दिष्ट करता है। इस खंड में इसके ऊपरी बाउंड के रूप में एक गैर-ऋणात्मक पूर्णांक होना चाहिए। वैकल्पिक।
लौटने-खंड: परिणाम_expression में निर्दिष्ट डेटा को वापस लौटाता है।
RBAC विशेषाधिकार
उपयोगकर्ता अद्यतन बयान को क्रियान्वित लक्ष्य keyspace पर क्वेरी अद्यतन विशेषाधिकार होना आवश्यक है। यदि कथन में कोई खंड है जिसके लिए डेटा पढ़ने की आवश्यकता है, जैसे कि SELECT क्लॉज, या रिटर्निंग क्लॉज, तो संबंधित क्लॉज में निर्दिष्ट कीपैस पर क्वेरी चयन विशेषाधिकार भी आवश्यक है। उपयोगकर्ता भूमिकाओं के बारे में अधिक जानकारी के लिए, प्राधिकरण देखें।
उदाहरण के लिए,
निम्नलिखित बयान पर अमल करने के लिए, उपयोगकर्ता travel-sample
पर क्वेरी अद्यतन विशेषाधिकार होना आवश्यक है।
UPDATE `travel-sample` SET foo = 5
निम्नलिखित बयान पर अमल करने के लिए, उपयोगकर्ता beer-sample
पर विशेषाधिकार travel-sample
और क्वेरी का चयन करें पर क्वेरी अद्यतन विशेषाधिकार होना आवश्यक है।
UPDATE `travel-sample`
SET foo = 9
WHERE city = (SELECT raw city FROM `beer-sample` WHERE type = "brewery"
To execute the following statement, user must have the Query Update privilege on `travel-sample` and Query Select privilege on `travel-sample`.
UPDATE `travel-sample`
SET city = “San Francisco”
WHERE lower(city) = "sanfrancisco"
RETURNING *
Example
निम्न कथन में परिवर्तन उत्पाद के "प्रकार" "Odwalla-juice1" से "उत्पाद-रस"।
UPDATE product USE KEYS "odwalla-juice1" SET type = "product-juice" RETURNING product.type
"results": [
{
"type": "product-juice"
}
]
यह बयान "प्रकार" "उत्पाद" keyspace से दस्तावेज़ के लिए "Odwalla-juice1" कुंजी के साथ विशेषता निकाल देता है।
UPDATE product USE KEYS "odwalla-juice1" UNSET type RETURNING product.*
"results": [
{
"productId": "odwalla-juice1",
"unitPrice": 5.4
}
]
यह बयान महत्वपूर्ण है, "डेव" ट्यूटोरियल keyspace में साथ दस्तावेज़ के लिए "बच्चों" सरणी में "लिंग" विशेषता unsets।
UPDATE tutorial t USE KEYS "dave" UNSET c.gender FOR c IN children END RETURNING t
"results": [
{
"t": {
"age": 46,
"children": [
{
"age": 17,
"fname": "Aiden"
},
{
"age": 2,
"fname": "Bill"
}
],
"email": "[email protected]",
"fname": "Dave",
"hobbies": [
"golf",
"surfing"
],
"lname": "Smith",
"relation": "friend",
"title": "Mr.",
"type": "contact"
}
}
]
संस्करण 4.5.1 प्रारंभ करना, अद्यतन विवरण एसईटी नेस्टेड सरणी तत्वों में सुधार किया गया है। फ़ोर क्लॉज को फ़ंक्शंस और एक्सप्रेशन का मूल्यांकन करने के लिए बढ़ाया गया है, और नया वाक्यविन्यास घोंसला वाले सरणी में फ़ील्ड तक पहुंचने और अपडेट करने के लिए अभिव्यक्तियों के लिए कई नेस्टेड का समर्थन करता है। फॉर क्लॉज को चेन करके अतिरिक्त सरणी स्तर समर्थित हैं।
उदाहरण
UPDATE default
SET i.subitems = (ARRAY OBJECT_ADD(s, 'new', 'new_value')
FOR s IN i.subitems END)
FOR s IN ARRAY_FLATTEN(ARRAY i.subitems
FOR i IN items END, 1) END;
कैसे Couchbase/CouchDB काम करता है यही कारण है कि। प्रत्येक दस्तावेज़ को पूरी तरह से लिखा जाना चाहिए। आप अलग-अलग हिस्सों को नहीं लिख सकते हैं। – WiredPrairie