தொகுதி பாடங்கள் (1/2)
JSON மற்றும் JSONB ஒருங்கிணைப்பு
JSON மற்றும் JSONB ஒருங்கிணைப்பு
PostgreSQL ஆனது SQL இன் உறுதியளிக்கும், ராக்-திடமான ACID தன்மையை NoSQL இன் வழக்கமான மாறும், திரவ நெகிழ்வுத்தன்மையுடன் இணைப்பதன் மூலம் தரவுத்தளங்களின் விதிகளை மீண்டும் எழுதுகிறது. இது JSON தரவைச் சேமிப்பதற்காக சொந்தமாக அர்ப்பணிக்கப்பட்ட நெடுவரிசைகளை வழங்குவதன் மூலம் அவ்வாறு செய்தது.
எச்சரிக்கை: Postgres இல் எப்போதும் JSONB ஐப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது. "B" என்பது பைனரியைக் குறிக்கிறது: இந்த நெடுவரிசைகளில் சேமிக்கப்பட்ட JSON ஆவணங்கள் முற்றிலும் உரை வடிவமைப்பை இழக்கின்றன, ஆனால் அவை சரிபார்க்கப்படும், மிக உயர்ந்த செயல்திறனுடன் வினவப்படும், கையாளப்படும் மற்றும் கிளாசிக் B-tree அல்லது GIN INDEX உடன் அட்டவணைப்படுத்தப்படும் திறனைப் பெறுகின்றன.
JSON ஐ வழிநடத்துகிறது: "அம்பு" ஆபரேட்டர்
துரதிர்ஷ்டவசமாக ecommerce தரவுத்தளத்தில் தற்போது முன் வரையறுக்கப்பட்ட தூய JSON நெடுவரிசைகள் இல்லை. எவ்வாறாயினும், தற்காலிக JSON மதிப்புகளை உருவாக்கி அவற்றை உரையிலிருந்து "காஸ்ட்" செய்யலாம்!
JSON உடன் பணிபுரியும் போது, -> (தரவை அதன் தூய jsonb/json வடிவத்தில் வைத்திருக்கும்) அல்லது அதன் "நீட்டிக்கப்பட்ட" பதிப்பு ->> (எதிர்கொண்ட JSON தரவை உரையாக மாற்றும்) ஆபரேட்டர்கள்.
கல்விசார் உதாரணம், "மெட்டாடேட்டா" JSON நெடுவரிசை இருப்பது போல்:
-- Look up the value associated with the info key
SELECT metadata->'info' FROM users;
-- Drill into info, and grab city as text
SELECT metadata->'info'->>'city' FROM users;பறக்கும்போது JSON ஐ வினவலாம். இந்த json ஐ நேரடியாக \`'{"user": {"name": "Mario"}}'::json\` எனத் திட்டமிடவும், மேலும் \`->\` ஆபரேட்டரைப் பயன்படுத்தி உரைப் பதிப்பை (\`->>\`) பிரித்தெடுத்து 'பெயர்' பிரித்தெடுக்கவும், பிரித்தெடுக்கப்பட்ட நெடுவரிசைக்கு 'user_name' என்று பெயரிடவும்.
குறிப்பைக் காட்டு
::json அல்லது ::jsonb க்கு அனுப்பவும், மற்றும் ->'user'->>'name' ஐப் பயன்படுத்தவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
நாம் ஒரு வரிசையை கடந்து சென்றால் என்ன செய்வது? INDEX (பூஜ்ஜிய அடிப்படையிலான) மூலம் Postgres வேலைகளில் json_b இல் வரிசை அணுகல். \`'["A", "B", "C"]'::json\` இலிருந்து SECOND உறுப்பை உரையாக பிரித்தெடுத்து அதற்கு 'எழுத்து' என்று பெயரிடவும்.
குறிப்பைக் காட்டு
->>1 (இது பூஜ்ஜிய அடிப்படையிலானது!)
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்