2013-09-02 7 views
35

मैं एक RethinkDB दस्तावेज़ से एक कुंजी को हटाने का प्रयास कर रहा हूं। मेरे दृष्टिकोण (जो काम नहीं किया):RethinkDB दस्तावेज़ से कोई कुंजी कैसे निकालें?

r.db('db').table('user').replace(function(row){delete row["key"]; return row}) 

अन्य दृष्टिकोण:

r.db('db').table('user').update({key: null}) 

यह एक बस सेट row.key = बातिल (जो उचित दिखता है)।

उदाहरण यूआईआई के माध्यम से rethinkdb डेटा एक्सप्लोरर पर परीक्षण किए गए उदाहरण।

उत्तर

61

यहाँ RethinkDB की वेबसाइट पर दस्तावेज़ से प्रासंगिक उदाहरण है: http://rethinkdb.com/docs/cookbook/python/#removing-a-field-from-a-document

किसी तालिका में सभी दस्तावेजों से कोई फ़ील्ड निकालने के लिए आपको replace उपयोग करने की आवश्यकता वांछित फ़ील्ड को शामिल करने के लिए दस्तावेज़ को अपडेट करने के लिए (without का उपयोग करके):

r.db('db').table('user').replace(r.row.without('key')) 

एक विशेष दस्तावेज़ से क्षेत्र को निकालने के लिए तालिका में:

r.db('db').table('user').get('id').replace(r.row.without('key')) 

आप एपीआई में चयनकर्ताओं के किसी भी उपयोग (http://rethinkdb.com/api/) द्वारा अद्यतन करने के लिए दस्तावेजों के चयन को बदल सकते हैं, उदाहरण के लिए db, table, get, get_all, between, filter

+3

यदि आप नुस्खा के जावास्क्रिप्ट संस्करण की तलाश में हैं: http://rethinkdb.com/docs/cookbook/javascript/#removing-a-field-from-a-document – neumino

+3

मैं इसे नेस्टेड फ़ील्ड के लिए कैसे कर सकता हूं कुंजी? – Suvitruf

+7

@Suvitruf, आप निम्नानुसार नेस्टेड फ़ील्ड सिंटैक्स का उपयोग निम्नानुसार कर सकते हैं: '.replace (r.row.without ({key1: {key2: true}})) – BarthesSimpson

9

आप replacewithout के साथ उपयोग कर सकते हैं:

r.db('db').table('user').replace(r.row.without('key')) 
+2

मैं इस कुंजी का नेस्टेड क्षेत्र के लिए कर सकते हैं? – Suvitruf

+2

नेस्टेड फ़ील्ड्स के लिए, आप नेस्टेड फ़ील्ड सिंटैक्स का उपयोग निम्नानुसार कर सकते हैं: '.replace (r.row.without ({key1: {key2: true}})) – BarthesSimpson

+0

भयानक टिप्पणी, धन्यवाद! – pregmatch

1

आपको पूरे दस्तावेज़ को अपडेट करने के लिए प्रतिस्थापित करने की आवश्यकता नहीं है। ReQL command: literal

मान लें अपने उपयोगकर्ता दस्तावेज़ इस तरह दिखता है:

{ 
    "id": 1, 
    "name": "Alice", 
    "data": { 
    "age": 19, 
    "city": "Dallas", 
    "job": "Engineer" 
    } 
} 

और आप डेटा गुण से उम्र निकालना चाहते यहाँ प्रासंगिक दस्तावेज है। आम तौर पर, अद्यतन पुराने डेटा के साथ बस अपना नया डेटा मर्ज करेगा। डेटा ऑब्जेक्ट को एक इकाई के रूप में इलाज करने के लिए r.literal का उपयोग किया जा सकता है।

r.table('users').get(1).update({ data: r.literal({ age: 19, job: 'Engineer' }) }).run(conn, callback) 

// Result passed to callback 
{ 
    "id": 1, 
    "name": "Alice", 
    "data": { 
    "age": 19, 
    "job": "Engineer" 
    } 
} 

या

r.table('users').get(1).update({ data: { city: r.literal() } }).run(conn, callback) 

// Result passed to callback 
{ 
    "id": 1, 
    "name": "Alice", 
    "data": { 
    "age": 19, 
    "job": "Engineer" 
    } 
} 
संबंधित मुद्दे