Prisma के साथ संबंध और उन्नत क्वेरी
एक-से-अनेक और अनेक-से-अनेक संबंधों का मॉडल बनाएँ, फिर नेस्टेड लेखन, include, select, फ़िल्टरिंग और पृष्ठांकन से उनमें क्वेरी करें।
Prisma के साथ संबंध और उन्नत क्वेरी, CoddyKit पर Next.js 15 पूर्ण-स्टैक वेब ऐप का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Next.js 15 पूर्ण-स्टैक वेब ऐप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Next.js 15 पूर्ण-स्टैक वेब ऐप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
संबंध क्यों
वास्तविक डेटा आपस में जुड़ा होता है: एक उपयोगकर्ता के कई पोस्ट हो सकते हैं और एक पोस्ट के कई टैग। Prisma इन relations को स्कीमा में मॉडल करता है, ताकि आप प्रकार-सुरक्षित क्वेरी में इनके बीच जा सकें।
स्कीमा में एक-से-अनेक
एक-से-अनेक संबंध विदेशी कुंजी के माध्यम से एक मूल रिकॉर्ड को कई बाल रिकॉर्ड से जोड़ता है। स्कीमा में दोनों पक्ष परिभाषित करें।
model User {
id Int @id @default(autoincrement())
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
authorId Int
author User @relation(fields: [authorId], references: [id])
}अनेक-से-अनेक
Prisma दोनों पक्षों पर केवल array फ़ील्ड के साथ implicit many-to-many संबंधों का समर्थन करता है; यह आपके लिए join table का प्रबंधन करता है।
model Post { id Int @id @default(autoincrement()) tags Tag[] }
model Tag { id Int @id @default(autoincrement()) posts Post[] }संबंधित डेटा शामिल करना
डिफ़ॉल्ट रूप से क्वेरी केवल मॉडल के फ़ील्ड लौटाती हैं। संबंधित रिकॉर्ड भी प्राप्त करने के लिए include का उपयोग करें।
const user = await prisma.user.findUnique({
where: { id: 1 },
include: { posts: true },
});विशिष्ट फ़ील्ड चुनना
केवल आवश्यक कॉलम प्राप्त करने के लिए select का उपयोग करें — इससे payload हल्का और क्वेरी तेज़ होती हैं। आप संबंधों के लिए select को नेस्ट भी कर सकते हैं।
const posts = await prisma.post.findMany({
select: { id: true, title: true, author: { select: { name: true } } },
});नेस्टेड लेखन
नेस्टेड create के साथ एक ही कॉल में मूल रिकॉर्ड और उसके बाल रिकॉर्ड बनाएँ। Prisma इसे एक लेन-देन में चलाता है।
await prisma.user.create({
data: {
name: 'Ada',
posts: { create: [{ title: 'Hello' }, { title: 'World' }] },
},
});where से फ़िल्टर करना
contains, gt, in जैसे ऑपरेटरों से विस्तृत फ़िल्टर बनाएँ और उन्हें AND/OR से संयोजित करें।
const recent = await prisma.post.findMany({
where: {
published: true,
title: { contains: 'Prisma' },
},
});संबंधों पर फ़िल्टर करना
some, every या none का उपयोग करके आप बाल रिकॉर्ड की किसी शर्त के आधार पर मूल रिकॉर्ड को फ़िल्टर कर सकते हैं।
const authors = await prisma.user.findMany({
where: { posts: { some: { published: true } } },
});क्रमबद्ध करना और पृष्ठांकन
परिणामों का क्रम orderBy से तय करें और पारंपरिक पृष्ठांकन के लिए take/skip (ऑफ़सेट) से पृष्ठ बनाएँ।
const page = await prisma.post.findMany({
orderBy: { createdAt: 'desc' },
take: 10,
skip: 20,
});कर्सर पृष्ठांकन
बड़े या लगातार बदलते डेटासेट के लिए cursor-based पृष्ठांकन ऑफ़सेट से अधिक स्थिर होता है। अंतिम देखी गई id को कर्सर के रूप में भेजें।
const next = await prisma.post.findMany({
take: 10,
cursor: { id: lastId },
skip: 1,
});N+1 क्वेरी से बचना
किसी सूची को प्राप्त करने के बाद प्रत्येक आइटम के लिए अलग क्वेरी चलाने से N+1 problem उत्पन्न होती है। Prisma इससे बचाता है: लूप चलाने के बजाय संबंधों को एक अनुकूलित क्वेरी में लोड करने के लिए एकल include का उपयोग करें।
त्वरित जाँच
Prisma संबंधों संबंधी अपने ज्ञान की जाँच करें।
पुनरावलोकन
आपने Prisma के साथ संबंधपरक क्वेरी करना सीखा:
- स्कीमा में one-to-many और many-to-many संबंधों को मॉडल करें
includeसे संबंध प्राप्त करें औरselectसे फ़ील्ड कम करें- Nested writes मूल और बाल रिकॉर्ड को परमाणु रूप से बनाते हैं
- संबंधों पर फ़िल्टर करें, take/skip या कर्सर से पृष्ठ बनाएँ और N+1 समस्या से बचें
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “Prisma के साथ संबंध और उन्नत क्वेरी” पाठ निःशुल्क है?
हाँ — Next.js 15 पूर्ण-स्टैक वेब ऐप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Prisma के साथ संबंध और उन्नत क्वेरी” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Next.js 15 पूर्ण-स्टैक वेब ऐप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Prisma के साथ संबंध और उन्नत क्वेरी” में मैं क्या सीखूँगा?
एक-से-अनेक और अनेक-से-अनेक संबंधों का मॉडल बनाएँ, फिर नेस्टेड लेखन, include, select, फ़िल्टरिंग और पृष्ठांकन से उनमें क्वेरी करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Next.js 15 पूर्ण-स्टैक वेब ऐप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Next.js 15 पूर्ण-स्टैक वेब ऐप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Next.js 15 पूर्ण-स्टैक वेब ऐप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“Prisma के साथ संबंध और उन्नत क्वेरी” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Next.js 15 पूर्ण-स्टैक वेब ऐप पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Next.js 15 पूर्ण-स्टैक वेब ऐप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Prisma ORM का परिचय
- Prisma स्कीमा डिज़ाइन और माइग्रेशन
- Prisma Client के साथ CRUD ऑपरेशन
- Prisma के साथ संबंध और उन्नत क्वेरी